2013-03-20 38 views
20

我完全找不到npm在其中存储全局设置的情况。nodejs npm窗口上缺少全局配置

NPM配置得到USERCONFIG

C:\Users\Jack\.npmrc 

NPM配置获取globalconfig

C:\Users\Jack\AppData\Roaming\npm\etc\npmrc 

有没有文件在这两种路径,但

NPM配置获取代理 - >返回我的代理工作网址。我想删除它。

NPM配置-g删除代理

npm ERR! Error: ENOENT, unlink 'C:\Users\Jack\AppData\Roaming\npm\etc\npmrc' 

npm ERR! System Windows_NT 6.2.9200 
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "config" "-g" "delete" "proxy" 
npm ERR! cwd C:\f\Dropbox\apps 
npm ERR! node -v v0.8.22 
npm ERR! npm -v 1.2.14 
npm ERR! path C:\Users\Jack\AppData\Roaming\npm\etc\npmrc 
npm ERR! code ENOENT 
npm ERR! errno 34 
npm ERR! 
npm ERR! Additional logging details can be found in: 
npm ERR!  C:\f\Dropbox\apps\npm-debug.log 
npm ERR! not ok code 0 
+0

https://github.com/npm/npm/wiki/Troubleshooting#upgrading-on-windows – Lonely 2016-12-23 09:51:26

回答

14

看起来像npm用于编辑其配置文件的文件不是在全新安装中创建的,因为npm对每个文件都有默认选项。这就是为什么您仍然可以通过npm config get <option>获得选项:让这些文件仅覆盖默认值,它不会从头开始创建选项。

我以前从未碰过我的npm config东西,尽管我已经拥有了好几个月了。目前还没有任何文件,例如~/.npmrc(在Windows 8.1机器上有Git Bash),但我可以运行npm config get <something>,如果是正确的npm选项,它会返回一个值。当我运行npm config set <option> <value>时,文件~/.npmrc似乎是自动创建的,其选项&的值为唯一未注释的行。

至于删除选项,它看起来像只是将值设置回默认值,或者什么也不做,如果该选项从未设置或未复位&永不复位。此外,如果该选项是唯一明确设置的选项,则看起来像~/.npmrc也会被删除,并且如果您以后再使用set则会重新创建该选项。

在你的情况下(假设它在一年后仍然是相同的),它看起来像你从未在npm中设置proxy选项。因此,如npmconfig帮助页面所述,它被设置为任何http_proxy(区分大小写)环境变量。这意味着没有任何东西delete,除非你想“删除”你的HTTP代理,尽管你可以选择set选项或环境变量,并希望它们不会以某种方式破坏你的设置。

+0

我从来没有真正想过这个ou t,它必须是所提到的Env变量,但我发誓我没有设置它们。 – Jack 2014-04-04 20:51:57

+0

当时我是用一个脚本,设置 '[环境] :: SetEnvironmentVariable方法( “HTTP_PROXY”,$代理, “用户”)' 解封 ' “HTTP_PROXY”,$空, “用户”' 新控制台代理变量卡住了。 我总结自己,Windows并没有真正听取用户环境设置的变化。如果你想设置一个。设置它并保留它。如果开启/关闭设置我的代理服务器依赖于SSID,那么请使用进程env变量,然后将检查放在控制台配置文件中。 在$ profile.currentUserAllHosts文件中坚持'$ Env:http_prxy'就是我所使用的。 – Jack 2014-04-04 20:59:22

+0

它是'未设置<环境变量>',而不是'未设置'。其余的我不确定。 – trysis 2014-04-04 21:40:35

1

这不是你正在寻找的路径?

C:\Program Files\nodejs\node_modules\npm\npmmrc

我知道,NPM输出如此,但全球的文件夹是Node.js的安装,所有的模块的文件夹。

20

在Windows下升级npm时出现问题。该inital安装完毕后作为的NodeJS的部分安装使用MSI软件包将创建一个npmrc文件:

C:\Program Files\nodejs\node_modules\npm\npmmrc

当您使用更新NPM:

npm install -g [email protected]

它会安装新版本在:

C:\Users\Jack\AppData\Roaming\npm

假设你名称是Jack,它是%APPDATA%\ npm。

新安装不包括npmrc文件并没有它全球根目录将根据所在节点从运行,因此它是C:\Program Files\nodejs\node_modules

可以通过运行检查:

npm root -g

这不会工作,因为npm没有写入"Program Files"目录的权限。您需要将npmrc文件从原始安装中复制到新安装中。默认情况下,该文件只有下面一行:

prefix=${APPDATA}\npm

这是这里介绍:https://github.com/npm/npm/wiki/Troubleshooting

+0

此链接https://github.com/npm/npm/wiki/Troubleshooting像魅力一样工作! – SharpCoder 2016-07-25 19:49:13

4

你试过运行npm config list?而且,如果您想查看默认值,请运行npm config ls -l

+1

评论不应作为答案发布。 – 2016-02-23 13:51:52

8

对我来说(即在Windows 10)的npmrc file定位于:

  • NPM V4.2.0
  • 的Node.js v7.8.0

%USERPROFILE%\.npmrc 

与测试

+1

与'npm v5.4.2'相同 – Sam 2017-10-23 13:12:22