在我的项目中,我有一个需要将软件包发布到2个注册表的要求。
当前,每当我需要发布时,我都会执行以下步骤。
npm config set registry https://registry.npmjs.org/
,然后npm publish
。npm config set registry http://npm-registry.myorg.com
然后是npm publish
这对我来说是一个累人的过程,因为我发布了许多新更改。因此,我想到了通过在package.json
中创建可以自动执行此操作的脚本来减少一些工作。
这就是我添加的内容。
{
scripts: {
"deploy:private": "npm config set registry http://npm-registry.myorg.com && npm publish",
"deploy:public": "npm config set registry https://registry.npmjs.org/ && npm publish"
}
}
因此,当我运行yarn deploy:private
时,它会显示以下内容
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`
我该如何解决,请帮忙?
---------- UPDATE -----------
谷歌搜索后,我发现了这个https://docs.npmjs.com/using-private-packages-in-a-ci-cd-workflow
基于此,我将令牌设置为env变量,并在项目中创建了一个本地.npmrc,内容如下:
.npmrc文件
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
//npm-registry.tokopedia.com/:_authToken=${NPM_TOKEN_PRIVATE}
但是,当我尝试运行上述命令时,仍然出现错误。