NPM配置清单:环境配置 - REGISTRY

时间:2017-02-09 12:55:28

标签: node.js npm command-line-interface

在我的C:\ Users \ XXXXXX.npmrc文件中,我有以下设置;

https-proxy=http://proxy.server.com:0000
http-proxy=http://proxy.server.com:0000
strict-ssl=false

代理已经过验证是正确的,当我尝试将项目从Node Package Manager安装到包含 package.json 文件的目录时,我收到以下错误:

npm REGISTRY json parsing error

当我尝试查看我的npm配置时,我使用以下命令:

npm config list

并查看以下设置:

;cli configs
user-agent = "npm/2.15.5 node/v4.4.5 win32 x64"

; environment configs
cache = "C:\\LOCATION"
prefix = "C:\\LOCATION"
registry = "http://another.proxy.server:0000"

; userconfig C:\Users\USERNAME\.npmrc
https-proxy = "https://proxy.server.com:0000
http = "http://proxy.server.com:0000
rejectUnauthorized=false
strict-ssl=false

;builtin config defined

;node bin location = C:\LOCATION
;cwd = C:\LOCATOIN
;HOME = C:\LOCATION
; 'npm config ls -l' to show all defaults.

我可以使用以下命令更改注册表:

npm config set registry http://registry.npmjs.org

但是,当我运行以下命令时:

npm config list

它仍然将其他代理列为默认代理。

有什么想法吗?

更新

查看其他线程后,我决定使用以下命令详细查看所有NPM默认配置:

npm config ls -l

运行此命令后,我看到注册表配置的以下条目(我看不到运行上一个命令):

; registry = "https://registry.npmjs.org/" (overridden)

有没有人知道为什么注册表会被覆盖或者常见的应用程序/位置会做这样的事情?

1 个答案:

答案 0 :(得分:0)

从“ npm config ls -l”看到的行显示注册表的默认值为“ https://registry.npmjs.org/”。当您运行命令“ npm config set Registry http://registry.npmjs.org”时,您将覆盖该值。您应该在ls输出的userconfig部分中看到一行,表明您在用户配置中设置了“ registry”值。似乎注册表也被环境变量覆盖,该环境变量可能会覆盖默认配置和用户配置(您使用'config set'命令设置的内容)。