在Windows上缺少nodejs npm global config

时间:2013-03-20 23:41:39

标签: windows node.js npm

我根本找不到存储全局设置的地方。

npm config get userconfig

C:\Users\Jack\.npmrc

npm config get globalconfig

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

这两条路径都没有文件

npm config get proxy - >返回我的代理网址工作。我想删除。

npm config -g delete proxy

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

8 个答案:

答案 0 :(得分:27)

在Windows下升级npm时出现问题。使用msi包作为nodejs install的一部分完成的初始安装将创建一个npmrc文件:

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

使用以下内容更新npm时

npm install -g npm@latest

它将在以下位置安装新版本:

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

答案 1 :(得分:20)

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

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

至于删除选项,看起来这只是将值设置回默认值,或者如果该选项从未设置或未设置,则不执行任何操作。从未重置。此外,如果该选项是唯一明确设置的选项,则看起来也会删除~/.npmrc,如果您set之后还有其他任何内容,则会重新创建。

在您的情况下(假设一年后它仍然相同),您似乎从未在proxy中设置npm选项。因此,正如npm的{​​{1}}帮助页面所说,它设置为您的config(不区分大小写)环境变量。这意味着http_proxy没有任何内容,除非你想“删除”你的HTTP代理,尽管你可以delete将选项或环境变量放到其他地方并且希望它们不会以某种方式破坏你的设置。 / p>

答案 2 :(得分:18)

对于我(在Windows 10上),npmrc file位于:

%USERPROFILE%\.npmrc

经过测试:

  • npm v4.2.0
  • Node.js v7.8.0

答案 3 :(得分:5)

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

答案 4 :(得分:2)

如何解决

npm root开始-它会为您显示当前用户的NPM软件包的根文件夹。 添加-g,您将获得一个全局文件夹。不要忘记减去node_modules

使用npm config / npm config -g并检查它是否会为您创建一个新的.npmrc / npmrc文件。

在Windows 10 Pro,NPM v.6.4.1上测试:

全局NPM配置

C:\Users\%username%\AppData\Roaming\npm\etc\npmrc

每用户NPM配置

C:\Users\%username%\.npmrc

内置NPM配置

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

参考文献:

答案 5 :(得分:1)

这不是你要找的路吗?

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

我知道npm会输出,但全局文件夹是安装node.js的文件夹,所有模块都是。

答案 6 :(得分:0)

即使我们拥有.NPMRC可以位于3个位置, 请注意-每用户NPM配置位置下的文件优先于全局和内置配置。

  1. 全局NPM配置=> C:\ Users \%username%\ AppData \ Roaming \ npm \ etc \ npmrc
  2. 每用户NPM配置=> C:\ Users \%username%.npmrc
  3. 内置NPM配置=> C:\ Program Files \ nodejs \ node_modules \ npm \ npmrc

要找出要更新的文件,请尝试使用以下命令设置代理     npm config设置https-proxy https://username:password@proxy.company.com:6050

之后,打开.npmrc文件以查看哪个文件被更新。

答案 7 :(得分:0)

在 windows 上,使用下面的命令列出了 npm 的所有默认值,包括变量名 userconfig 的配置文件的位置

npm config ls -l