我使用两个NPM账户:公共账户和私人账户.我如何设置它以便npm login
每次我在不同的帐户上发布模块时都不需要?
UPD:寻找NPM内置解决方案,所以没有shell脚本等
Iai*_*eid 14
我知道我回答这个问题有点晚了(好吧,超级晚了),但我刚刚遇到同样的问题,同时必须快速连续地向私人和公共注册机构发布.
我发现此问题的最佳解决方案是在用户级别提供第二个或第三个配置文件.这就是我的
$HOME
目录当前的样子:
Admins-iMac% ls -la ~/.npmrc*
-rw------- 1 moi staff 52 10 Apr 14:48 /Users/moi/.npmrc
-rw-r--r-- 1 moi staff 498 10 Apr 14:52 /Users/moi/.npmrc-private-reg
-rw-r--r-- 1 moi staff 70 10 Apr 14:48 /Users/moi/.npmrc-public-reg
在"私有"和"公共"dotfiles中,我分别有Artifactory和npmjs.org用户设置,但除此之外它们都是空的.我的默认NPM配置文件内部也很少,因为我的大多数配置都位于一个全局文件中,其背后的原因除了这个问题之外......
当我将模块发布到任一注册表时,我只是将该
--userconfig
选项与我希望进行身份验证的文件路径一起传递.
例如,我只是轻松地将包推送到公共NPM注册表,如下所示:
npm publish --userconfig ~/.npmrc-public-reg
Vas*_*iak 12
这就是我解决具有4个不同NPM登录名的方式。
.gitignore
(.npmignore
对于NPM模块)中,添加以下行:.npmrc
。这将确保您永远不会提交(或发布).npmrc
文件。.npmrc
包含以下内容的文件:(//registry.npmjs.org/:_authToken=11111111-1111-1111-1111-111111111111
将GUID替换为实际的NPM身份验证令牌,例如,您可以从中获取它~/.npmrc
)该npm
CLI将查找在当前文件夹.npmrc
文件(或任何父文件夹),将使用它的权威性。
结果,所有npm
命令均按原样运行,无需传递--userconfig
任何内容。
除上述内容外,您还可以在计算机/笔记本电脑上使用默认的 NPM令牌。
.npmrc
不存在.gitignore
(对于大多数项目来说很常见)。.npmrc
在项目的根文件夹中创建文件。放入其中://registry.npmjs.org/:_authToken=${NPM_TOKEN}
。这将使npm
使用NPM_TOKEN
env。变种 而npm
将中止,如果这样的ENV。变种 找不到。NPM_TOKEN
设置了环境变量。例如NPM_TOKEN=11111111-1111-1111-1111-111111111111
。我有它在我的~/.bash_profile
。结果,提交了该文件的所有项目都将使用环境变量NPM_TOKEN
进行npm auth。
结果,所有npm命令均按原样运行,无需传递--userconfig
或执行任何操作。
对于CI(连续集成)来说,这是足够好的和安全的。所有CI都允许您设置环境变量。使用这种方法,您可以通过简单的环境更改NPM用户。变种 更改。
专家提示
键入npm whoami
命令以检查文件夹中当前正在使用哪个令牌。
归档时间: |
|
查看次数: |
2552 次 |
最近记录: |