默认情况下,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
错了,它应该如何运作?