为什么npm userconfig没有被选中?

时间:2016-11-16 15:08:34

标签: node.js configuration npm

默认情况下,NPM将用户配置存储在~/.npmrc中。我的用户配置中有很多东西,我不想干涉我的主项目,但是我正在切换到需要不同配置的第二个项目,所以我只是这样做了:

npm config set userconfig C:\path\to\another\directory\.npmrc

令我惊讶的是,NPM在userconfig的现有用户配置中添加了新条目~/.npmrc。这对我来说没有意义 - 似乎NPM需要知道用户配置的位置,以便找出它的位置!

现在,NPM忽略我放入新NPMRC文件的任何属性,只接受来自~/.npmrc的属性。更奇怪的是,npm config list包含指定我的新位置的userconfig标头(以分号为前缀的行),但内容来自~/.npmrc

例如,如果我将电子邮件设置为" foo@example.com"在~/.npmrc和" bar@example.com"在我的新NPMRC中,npm config list报告的内容如下:

; cli configs
user-agent = "npm/3.10.8 node/v6.9.1 win32 x64"

; userconfig C:\path\to\another\directory\.npmrc
(... other properties ...)
email = "foo@example.com"
(... other properties ...)
userconfig = "C:\path\to\another\directory\.npmrc"

; builtin config undefined

; node bin location = C:\Program Files\nodejs\node.exe
; cwd = C:\
; HOME = C:\Users\MyUsername
; "npm config ls -l" to show all defaults.

尽管出现了价值,但~/.npmrc的价值已经来了(我仔细检查了新NPMRC中的价值肯定是" bar@example.com")。

我认为这可能是NPM中的一个错误,因此我将Node / NPM升级到最新版本,但它的行为方式仍然相同。我使用userconfig错了,它应该如何运作?

0 个答案:

没有答案