VS Code插件发布需先用vsce login验证publisher,再确保package.json中publisher、name、version等字段合规,否则会因未验证、重名或版本重复报错。

发布插件到 VS Code Marketplace 不是点几下就能上线的事,它需要正确签名、合法凭证和符合策略的元数据;跳过 vsce 登录或忽略 publisher 配置,99% 会卡在 “You are not a verified publisher” 错误。
如何用 vsce 打包并登录 Marketplace 账户
vsce 是官方命令行工具,必须全局安装且绑定 Microsoft 账户。没登录就运行 vsce publish,会直接报错 Unable to publish: You are not a verified publisher。
- 先执行
npm install -g vsce(确保 Node.js ≥ 14) - 用企业/个人 Microsoft 账户注册 Publisher:访问 https://www.php.cn/link/0507ea3f897987f62fc8619ae288236f → “New Publisher”,填好名称(如
myname),记下这个publisher ID - 终端运行
vsce login myname(把myname换成你注册的 ID),按提示粘贴一次性密码(不是微软账户密码) - 登录成功后,
vsce会在~/.vsce存 token,后续 publish 不再需要重复登录
package.json 里哪些字段不填或填错会导致审核失败
Marketplace 会自动校验 package.json 的关键字段,缺失或格式错误会拒绝上传,甚至静默失败。
-
publisher必须与vsce login时用的 ID 完全一致(大小写敏感) -
name只能含小写字母、数字、连字符,且不能与已有插件重名(可用vsce create预检) -
version必须是标准语义化格式(如1.0.0),不能是1.0或v1.0.0 -
icon和galleryBanner路径必须存在,且图片尺寸合规(icon 128×128,banner 1280×560) -
engines.vscode建议设为"^1.70.0"以上,太老的版本(如"^1.20.0")可能被标记为“不兼容”
为什么 vsce publish 报错 Extension 'xxx' already exists
这不是网络问题,而是你试图发布一个已存在同名、同版本的插件——VS Code Marketplace 不允许覆盖已发布的版本号。
- 每次修改代码后发布,必须先升级
version字段(哪怕只改1.0.0→1.0.1) - 如果只是测试,可用
vsce package生成.vsix文件本地安装,不走 Marketplace - 误删了已发布插件?不能重发同名同版本,只能换
name(如加-beta后缀)或等 72 小时后重试(部分情况有缓存延迟) - 私有插件不想公开?别用
vsce publish,改用vsce package+ 内网分发
最常被忽略的是 publisher 和 name 的组合唯一性:改了 publisher 就算新账号,但旧账号下所有历史版本仍归属原 publisher,无法迁移。真要换主体,得重新命名插件并通知用户迁移。


















