无法在 Gitlab 上发布私有 npm 包 - E404 Not found PUT

Posted

技术标签:

【中文标题】无法在 Gitlab 上发布私有 npm 包 - E404 Not found PUT【英文标题】:Can't publish private npm package on Gitlab - E404 Not found PUT 【发布时间】:2021-06-06 16:19:46 【问题描述】:

我尝试了许多不同的文档和教程来在私有 gitlab 实例上发布一个作用域 npm 包。

到目前为止,我已经:

创建了一个具有包写入和读取权限的部署令牌:

设置一个包含以下内容的 .npmrc 文件:

@<scope>:registry=https://<domain>/api/v4/packages/npm/

//<domain>/api/v4/projects/<id>/packages/npm/:_authToken=<token>

//<domain>/api/v4/packages/npm/:_authToken=<token>

将“publishConfig”添加到“package.json”:


  "name": "@<scope>/<name>",
  "version": "1.0.0",
  "main": "dist/index.js",
  "license": "MIT",
  "publishConfig": 
    "@<scope>:registry": "https://<domain>/api/v4/projects/<id>/packages/npm"
  ,
  "scripts": 
    "build": "tsc",
    "prepublish": "tsc"
  ,
  "devDependencies": 
    "ts-node": "^9.1.1"
  

已验证 repo 允许存储包:

但每次我尝试运行 npm publishyarn publish 时,它都会构建、打包但无法发布:

日志文件详细重复上面的错误日志。

我正在尝试为内部服务发布私有 SDK,并且需要一种方法来发布它,以便只有具有正确凭据的人才能在他们的项目中安装它。

提供的链接(未找到 - PUT https:// )重定向到 npmjs.com,我认为这不应该发生,因为我试图将它存储在 Gitlab 而不是在 npmjs 上购买组织。

我已经在私有域(运行 gitlab 13.9.1)和 https://gitlab.com 上尝试了这个过程,在上面公开的相同存储库配置上都得到了相同的结果。

我错过了一些步骤吗?提前致谢!

【问题讨论】:

【参考方案1】:

URL 的编辑部分中的项目 ID 显示为尝试发布导致的错误消息的一部分,看起来相当长。项目的 ID 不是项目的 slug。它是一个数值。

【讨论】:

以上是关于无法在 Gitlab 上发布私有 npm 包 - E404 Not found PUT的主要内容,如果未能解决你的问题,请参考以下文章

.npmrc 忽略了私有包

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

使用 NPM 发布包时出现 GitLab '404 Not Found' 错误

无法使用托管在 GPR 上的私有 NPM 包

在 Gitlab 中使用 NPM 发布

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