发布时打包、忽略文件和引擎版本怎么处理?
结论
用 @vscode/vsce 打包或发布。用 .vscodeignore 排除源码、依赖源和本地配置,只留运行所需的包。engines.vscode 写成你真正测试过、且 API 能满足的最低版本。
展开
常用命令是 vsce package 生成 vsix,vsce publish 发到市场。发布需要发布者账号和令牌。令牌放在本机或 CI 的密钥里,不要写进仓库。
.vscodeignore 的作用类似 npm 忽略,但规则是「打包时排除」。通常排除:
src、测试、tsconfig、.map之外你不想公开的源映射.vscode里的本地调试配置- 文档草稿、截图原件
node_modules里未打包进 bundle 的开发依赖
如果用打包工具把依赖打进单个 dist/extension.js,包里就可以不要 node_modules。如果运行时仍 require 某些依赖,这些依赖必须出现在 dependencies 而不是 devDependencies,并且不能被 ignore 掉。
发布前用打包命令的文件列表检查结果。漏排除会把 .env 和源码打进去;排除过头会让插件安装后找不到入口。
engines.vscode 例如 ^1.85.0。用了 1.85 才有的 API,却写成 ^1.60.0,旧编辑器加载到调用处才崩。市场也会按这个字段过滤能安装的编辑器。
预发布版本走单独通道,不要把每晚构建发成正式版。变更日志、图标、README、LICENSE、publisher、repository 是上架完整性的一部分。
容易讲错的点
.vscodeignore和.gitignore不是同一份。git 忽略了的文件仍可能被打进 vsix,反过来也一样。extensionDependencies是安装依赖的别的插件,不是 npm 依赖。- 升
engines是破坏性变化,要在变更日志里写用户需要的编辑器版本。