在 Gitlab 中使用 NPM 发布

Posted

技术标签:

【中文标题】在 Gitlab 中使用 NPM 发布【英文标题】:Use NPM publish with Gitlab 【发布时间】:2021-11-18 23:45:45 【问题描述】:

我会将我的第一个 npm publish 放入我的 Gitlab 项目中。该项目是私有的,因此我生成了一个具有 readwrite 包注册表权限的部署令牌。 我在本地创建了一个 .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 参数中可能有一个额外的变量 - 您的示例代码中有 &lt;deploy-name&gt;:&lt;deploy-password&gt;,但 GitLab 的代码只显示一个 auth_token 参数 (reference):

npm config set -- '//gitlab.example.com/api/v4/projects/<your_project_id>/packages/npm/:_authToken' "<your_token>"

【讨论】:

以上是关于在 Gitlab 中使用 NPM 发布的主要内容,如果未能解决你的问题,请参考以下文章

从私有 gitlab 注册表安装多个 npm 包

如何通过 https 使用私有 GitLab 存储库作为带有私有令牌的 npm 依赖项

从私有 gitlab 存储库中使用 npm 安装依赖项

npm 发布因 GitLab NPM 注册表而失败

如何将 gitlab 合并请求用作 npm 模块

npm install 后 Gitlab Shared Runner docker build