如何在本地设置多个 NPM 用户?
How to have multiple NPM users set up locally?
我正在使用两个 NPM 帐户:一个 public 一个和一个私人帐户。我如何设置它,以便我不需要每次在不同帐户上发布模块时 npm login
?
UPD:正在寻找 NPM 内置解决方案,因此没有 shell 脚本等
我知道我回答这个问题有点晚了(好吧,超级晚了),但我刚刚遇到了同样的问题,同时不得不快速连续地发布到私有和 public 注册中心.
The best solution I found to this issue is by having a second or third configuration file at the user level. This is how my $HOME
directory looks at the moment:
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
在 "private" 和 "public" 点文件中,我分别有 Artifactory 和 npmjs.org 用户设置,但除此之外它们是空的。我的默认 NPM 配置文件里面也很少,因为我的大部分配置都位于一个全局文件中,虽然这背后的原因与这个问题无关...
When it comes to me publishing a module to either registry, I simply pass the --userconfig
option with the path to the file that I wish to authenticate with.
例如,我只是轻松地将一个包推送到 public NPM 注册表,如下所示:
npm publish --userconfig ~/.npmrc-public-reg
这就是我使用 4 个不同的 NPM 登录解决问题的方法。
- 在每个项目的
.gitignore
(以及 NPM 模块的 .npmignore
)中添加此行:.npmrc
。这将确保您永远不会提交(或发布).npmrc
文件。
- 在每个项目的文件夹中创建包含以下内容的
.npmrc
文件://registry.npmjs.org/:_authToken=11111111-1111-1111-1111-111111111111
(将 GUID 替换为实际的 NPM 身份验证令牌,例如,您可以从 ~/.npmrc
获取它)
npm
CLI 将在您当前的文件夹中查找 .npmrc
文件(或在任何 parent 文件夹中)并将其用于身份验证。
因此所有 npm
命令都按原样工作,不需要传递 --userconfig
或任何东西。
除上述之外,您还可以在 computer/laptop.
中使用 default NPM 令牌
- 确保
.npmrc
不存在于 .gitignore
中(这对大多数项目都很常见)。
- 在项目的根文件夹中创建
.npmrc
文件。把这个放在里面://registry.npmjs.org/:_authToken=${NPM_TOKEN}
。这将使 npm
使用 NPM_TOKEN
环境。变种。如果这样的环境,npm
将中止。变种。未找到。
- 提交并推送该文件。 (是的。说真的。)
- 确保您的 shell 设置了
NPM_TOKEN
环境变量。例如。 NPM_TOKEN=11111111-1111-1111-1111-111111111111
。我有它在我的 ~/.bash_profile
.
提交此文件的所有项目都将使用您的环境变量 NPM_TOKEN
进行 npm auth。
因此所有 npm 命令都按原样工作,不需要传递 --userconfig
或任何东西。
这对于 CI(持续集成)来说已经足够好和安全了。所有 CI-s 都允许您设置环境变量。使用这种方法,您可以使用简单的环境更改 NPM 用户。变种。改变。
专业提示
键入 npm whoami
命令以检查文件夹中当前正在使用哪个令牌。
我正在使用两个 NPM 帐户:一个 public 一个和一个私人帐户。我如何设置它,以便我不需要每次在不同帐户上发布模块时 npm login
?
UPD:正在寻找 NPM 内置解决方案,因此没有 shell 脚本等
我知道我回答这个问题有点晚了(好吧,超级晚了),但我刚刚遇到了同样的问题,同时不得不快速连续地发布到私有和 public 注册中心.
The best solution I found to this issue is by having a second or third configuration file at the user level. This is how my
$HOME
directory looks at the moment:
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
在 "private" 和 "public" 点文件中,我分别有 Artifactory 和 npmjs.org 用户设置,但除此之外它们是空的。我的默认 NPM 配置文件里面也很少,因为我的大部分配置都位于一个全局文件中,虽然这背后的原因与这个问题无关...
When it comes to me publishing a module to either registry, I simply pass the
--userconfig
option with the path to the file that I wish to authenticate with.
例如,我只是轻松地将一个包推送到 public NPM 注册表,如下所示:
npm publish --userconfig ~/.npmrc-public-reg
这就是我使用 4 个不同的 NPM 登录解决问题的方法。
- 在每个项目的
.gitignore
(以及 NPM 模块的.npmignore
)中添加此行:.npmrc
。这将确保您永远不会提交(或发布).npmrc
文件。 - 在每个项目的文件夹中创建包含以下内容的
.npmrc
文件://registry.npmjs.org/:_authToken=11111111-1111-1111-1111-111111111111
(将 GUID 替换为实际的 NPM 身份验证令牌,例如,您可以从~/.npmrc
获取它)
npm
CLI 将在您当前的文件夹中查找 .npmrc
文件(或在任何 parent 文件夹中)并将其用于身份验证。
因此所有 npm
命令都按原样工作,不需要传递 --userconfig
或任何东西。
除上述之外,您还可以在 computer/laptop.
中使用 default NPM 令牌- 确保
.npmrc
不存在于.gitignore
中(这对大多数项目都很常见)。 - 在项目的根文件夹中创建
.npmrc
文件。把这个放在里面://registry.npmjs.org/:_authToken=${NPM_TOKEN}
。这将使npm
使用NPM_TOKEN
环境。变种。如果这样的环境,npm
将中止。变种。未找到。 - 提交并推送该文件。 (是的。说真的。)
- 确保您的 shell 设置了
NPM_TOKEN
环境变量。例如。NPM_TOKEN=11111111-1111-1111-1111-111111111111
。我有它在我的~/.bash_profile
.
提交此文件的所有项目都将使用您的环境变量 NPM_TOKEN
进行 npm auth。
因此所有 npm 命令都按原样工作,不需要传递 --userconfig
或任何东西。
这对于 CI(持续集成)来说已经足够好和安全了。所有 CI-s 都允许您设置环境变量。使用这种方法,您可以使用简单的环境更改 NPM 用户。变种。改变。
专业提示
键入 npm whoami
命令以检查文件夹中当前正在使用哪个令牌。