无法将npm包发布至GitLab Registry问题求助
解决发布Node包到GitLab Package Registry时的EPrivate错误
问题描述
执行npm publish时触发以下错误:
npm notice npm notice 📦 @root-group/prj@0.0.0 npm notice === Tarball Contents === npm notice 318B .gitlab-ci.yml npm notice 100B .gitpod.yml npm notice 8B .node-version npm notice 2.2kB CONTRIBUTING.md npm notice 201B Dockerfile npm notice 1.1kB LICENSE npm notice 822B README.md npm notice 1.1kB app.js npm notice 1.6kB bin/www npm notice 962B jenkinsfile npm notice 407B package.json npm notice 111B public/stylesheets/style.css npm notice 205B routes/index.js npm notice 203B routes/users.js npm notice 232B test/test.js npm notice 84B views/error.pug npm notice 66B views/index.pug npm notice 125B views/layout.pug npm notice === Tarball Details === npm notice name: @root-group/prj npm notice version: 0.0.0 npm notice filename: root-group-prj-0.0.0.tgz npm notice package size: 4.7 kB npm notice unpacked size: 9.8 kB npm notice shasum: a4c2b35dc8e70e2bc62bdc3cc41eacd18ede49d8 npm notice integrity: sha512-B8urHXCGTYsE9[...]g8CiL0dYVJA+A== npm notice total files: 18 npm notice npm notice Publishing to https://gitlab.com/api/v4/projects/<project_id>/packages/npm/ with tag latest and default access npm ERR! code EPRIVATE npm ERR! This package has been marked as private npm ERR! Remove the 'private' field from the package.json to publish it.
当前使用的配置文件:
package.json
{ "name": "@root-group/prj", "version": "0.0.0", "private": true, "scripts": { "start": "node ./bin/www", "test": "mocha --exit" }, "dependencies": { "cookie-parser": "^1.4.5", "debug": "^4.3.1", "express": "^4.17.1", "http-errors": "^1.8.0", "morgan": "^1.10.0", "pug": "^3.0.2" }, "devDependencies": { "mocha": "^9.0.0", "supertest": "^6.1.3" } }
.npmrc
@root-group:registry=https://gitlab.com/api/v4/projects/<registry_project_id>/packages/npm/ //gitlab.com/api/v4/projects/<registry_project_id>/packages/npm/:_authToken="<access_token>"
解决方案
- 核心修复:移除私有标记
npm 明确禁止发布标记为private: true的包,这是当前错误的直接原因。修改package.json,将"private": true改为"private": false,或者直接删除该字段。 - 验证令牌配置(后续必要步骤)
虽然当前错误与令牌无关,但确保你的access_token拥有write_package_registry权限,且.npmrc中的项目ID、令牌字符串无拼写错误。 - 重新发布
执行npm publish即可完成发布。
内容的提问来源于stack exchange,提问作者hadamard
相关产品推荐
相关产品推荐

