在 Gitlab 中使用 NPM 发布
Posted
技术标签:
【中文标题】在 Gitlab 中使用 NPM 发布【英文标题】:Use NPM publish with Gitlab 【发布时间】:2021-11-18 23:45:45 【问题描述】:我会将我的第一个 npm publish
放入我的 Gitlab 项目中。该项目是私有的,因此我生成了一个具有 read
和 write
包注册表权限的部署令牌。
我在本地创建了一个 .npmrc 文件并使用了这些行:
@laszlo-bottlik:registry=https://gitlab.com/api/v4/projects/28303714/packages/npm/
//gitlab.com/api/v4/packages/npm/:_authToken='<deploy-name>:<deploy-password>'
//gitlab.com/api/v4/projects/28303714/packages/npm/:_authToken='<deploy-name>:<deploy-password>'
包json中的名称值为@laszlo-bottlik/playground
该项目的网址是https://gitlab.com/laszlo-bottlik/playground
当我在终端中运行 npm publish
命令时,我得到 401 错误:
HttpErrorGeneral: 401 Unauthorized - PUT https://gitlab.com/api/v4/projects/28303714/packages/npm/@laszlo-bottlik%2fplayground
任何形式的帮助都可以引导我找到解决方案。 我应该在本地环境中检查什么? 我应该在 Gitlab 下的项目设置中检查什么?
【问题讨论】:
【参考方案1】:您使用部署令牌而不是作业令牌是否有原因?无论哪种方式,看起来您在上面的 authToken 参数中可能有一个额外的变量 - 您的示例代码中有 <deploy-name>:<deploy-password>
,但 GitLab 的代码只显示一个 auth_token 参数 (reference):
npm config set -- '//gitlab.example.com/api/v4/projects/<your_project_id>/packages/npm/:_authToken' "<your_token>"
【讨论】:
以上是关于在 Gitlab 中使用 NPM 发布的主要内容,如果未能解决你的问题,请参考以下文章