我想用Gitlab CI发布一个私有的npm包。
我已经为我的npm用户创建了一个auth令牌,并在我的Gitlab CI设置中将其设置为变量NPM_TOKEN
。
然后,该作业将创建一个包含注册表和身份验证令牌的.npmrc
文件。
- npm run build && npm run build:es6
- echo '//registry.npmjs.org/:_authToken=${NPM_TOKEN}'>.npmrc
- npm publish
作业失败,并显示以下消息:
npm ERR! code ENEEDAUTH
npm ERR! need auth auth required for publishing
npm ERR! need auth You need to authorize this machine using `npm adduser`
是否可以仅使用身份验证令牌进行发布?
3条答案
按热度按时间wb1gzix01#
正如@Amityo所说,与其手动编辑npmrc文件,
是正确的方法,因为否则您可能会编辑错误的npmrc文件。
如果仍然出现身份验证错误,并且确信令牌是正确的,请检查注册表URL。
其输出将包括如下行
如果要发布到npmjs.org,URL(上面的
.......
)应为https://registry.npmjs.org/。如果这个注册表URL不适合,请在您的npmrc文件中查找其他的。还要确保您没有覆盖
package.json
文件中的注册表!您可以在该文件中搜索**publishConfig
**。0yg35tkg2#
稍微详细说明一下**@phihag的答案,正斜杠非常**重要。
一开始我一直得到404没有找到
我使用的是2FA,所以正如gitlab文档所述,我需要使用一个设置为
api
的个人访问令牌来进行身份验证。某些功能(例如出版封装)只能在项目层级端点上使用。
因此,在控制台中,我尝试在项目级别发布和验证
这消除了我的第一个问题404没有找到,但现在我不能验证。几个小时。
正如您所看到的,
npm publish --verbose
在告诉我要发布到的URL方面没有帮助。再次检查文档,发现我在'packages/npm'后面缺少了尾随的斜杠。通过后面的斜杠,我可以将该项目发布到gitlabnpm包库
对于我使用的所有软件包
qc6wkl3g3#
我在
npm publish
上也遇到了同样的问题。我试过yarn publish
,它也失败了。我跑的时候就成功了:
此外,我遇到了一个与
.husky
相关的问题(* 无法安装husky*),在yarn publish
之前运行npm
的以下命令解决了该问题: