发布vscode插件

635 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第32天,点击查看活动详情

安装vsce

npm install -g vsce

方式1:打包上传插件(不推荐)

我看到vscode插件的后台管理,可以手动上传,于是就打算vsce package生成一份vsix文件

vsce package会有部分的校验工作,比如readme.md的内容不能是默认的,需要自己手动修改下。

image.png

image.png

这种方式我发现,点击upload后直接console报错了,翻墙也不行,有点坑。

方式2:使用Token发布vscode插件(推荐)

生成token

网上说的各种网站,各种填写,真是奇了怪了,发布个vscode插件咋这么糟心!

最后好不容易找到了这个Token管理页面,因为Azure Devops的网站经常改版,导致网上的截图样子其实和现在的出入比较大,导致经常找不到文章里面截图的位置,下图是我写这篇文章的时候,网站的截图样子。

网上其他教程说需要新建一个组织和项目,这里我认为是没有必要的,因为我们的操作是在用户设置里面。 image.png

生成的token具有有效时间,目前没有办法生成永久的,只能到期后再重新生成一个。

生成token的页面不要着急关闭,后续需要使用到这个token,如果关闭了这个界面,就会导致后续没办法填写token的值,只能再重新生成一个。

vsce publish

会要求你输入token,这个token就是上边生成的。

image.png

稍等片刻,就能在插件市场搜索到了。

总的来说,发布vscode插件没有想象中的简单,整个流程搞的比较复杂,比起npm 发布package来说,门槛略显有点高。

vsce publish failed request 401

需要登录

vsce login [options] <publisher>
vsce login xuyanfeng
Publisher 'xuyanfeng' is already known
Do you want to overwrite its PAT? [y/N] y
https://marketplace.visualstudio.com/manage/publishers/
Personal Access Token for publisher 'xuyanfeng': ****************************************************

The Personal Access Token verification succeeded for the publisher 'xuyanfeng'.

我这个是之前登录过了,我用新生成的token覆盖了本地的,token是上边的步骤生成的,其实这个token只要生成一次就行了,有点像ssh的rsa,之前一直理解不了这玩意,一直认为一个应用就需要一个,这是一个错误的理解。

token过期

 ERROR  {"$id":"1","customProperties":{"Descriptor":null,"IdentityDisplayName":null,"Token":null,"RequestedPermissions":0,"NamespaceId":"00000000-0000-0000-0000-000000
000000"},"innerException":null,"message":"Access Denied: The Personal Access Token used has expired.","typeName":"Microsoft.VisualStudio.Services.Security.AccessCheckException, Microsoft.VisualStudio.Services.WebApi","typeKey":"AccessCheckException","errorCode":0,"eventId":3000}

You're using an expired Personal Access Token, please get a new PAT.

去后台生成新的token,重新登陆,覆盖本地token即可

或者使用-p选项指定token

  -p, --pat <token>               Personal Access Token (defaults to VSCE_PAT environment variable)