在我的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)
有没有人知道为什么注册表会被覆盖或者常见的应用程序/位置会做这样的事情?
答案 0 :(得分:0)
从“ npm config ls -l”看到的行显示注册表的默认值为“ https://registry.npmjs.org/”。当您运行命令“ npm config set Registry http://registry.npmjs.org”时,您将覆盖该值。您应该在ls输出的userconfig部分中看到一行,表明您在用户配置中设置了“ registry”值。似乎注册表也被环境变量覆盖,该环境变量可能会覆盖默认配置和用户配置(您使用'config set'命令设置的内容)。