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

Posted

技术标签:

【中文标题】使用 NPM 发布包时出现 GitLab \'404 Not Found\' 错误【英文标题】:GitLab '404 Not Found' error when publishing a package using NPM使用 NPM 发布包时出现 GitLab '404 Not Found' 错误 【发布时间】:2021-11-07 06:11:45 【问题描述】:

我在尝试使用 NPM 和 GitLab 的“实例级”范围/命名空间配置 (reference) 将包发布到 GitLab 的私有/自托管实例的包存储库时遇到404 Not Found 错误。

错误

执行$ TOKEN=<ACCESS_TOKEN> npm publish会导致以下错误:

npm ERR! code E404
npm ERR! 404 Not Found - PUT https://gitlab.example.com/api/v4/packages/npm/@org%2fpackage-1 - 404 Not Found
npm ERR! 404 
npm ERR! 404  '@org/package-1@0.1.0' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404 
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.

配置

我的NPM配置如下:

package.json


  "name": "@org/package-1",
  "version": "0.1.0",
  "private": false,
  "peerDependencies": 
  ,
  "dependencies": 
  

~/.npmrc

@org:registry=https://gitlab.example.com/api/v4/packages/npm/
//gitlab.example.com/api/v4/packages/npm/:_authToken=$TOKEN

# @org/package-1
//gitlab.example.com/api/v4/projects/<PROJECT_ID>/packages/npm/:_authToken=$TOKEN

# @org/package-2
//gitlab.example.com/api/v4/projects/<PROJECT_ID>/packages/npm/:_authToken=$TOKEN

# @org/package-3
//gitlab.example.com/api/v4/projects/<PROJECT_ID>/packages/npm/:_authToken=$TOKEN

【问题讨论】:

【参考方案1】:

解决方案

publishConfig 添加到 package.json 以及与代码存储库关联的 GitLab 包存储库的 URL。

package.json(部分)

"publishConfig": 
    "@org:registry": "https://gitlab.example.com/api/v4/projects/<PROJECT_ID>/packages/npm/"
,

【讨论】:

以上是关于使用 NPM 发布包时出现 GitLab '404 Not Found' 错误的主要内容,如果未能解决你的问题,请参考以下文章

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

尝试将新包发布到 NPM 时出现 404

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

Gitlab Flask 页面:使用 .gitlab-ci.yml 文件为 Frozen Flask Application 安装 python GDAL 包时出现问题

Github 操作,使用 npm 或 yarn 安装 Github 包时出现 401 未授权

错误 404:在 Gitlab 中找不到文件