在Windows上缺少nodejs npm global config

Jac*_*ack 39 windows node.js npm

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

npm config get userconfig

C:\Users\Jack\.npmrc
Run Code Online (Sandbox Code Playgroud)

npm config get globalconfig

C:\Users\Jack\AppData\Roaming\npm\etc\npmrc
Run Code Online (Sandbox Code Playgroud)

在这些路径中都没有文件

npm config get proxy - >返回我的代理URL工作.我想删除.

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
Run Code Online (Sandbox Code Playgroud)

oen*_*lli 29

在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

假设你的名字是杰克,那是%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


Ben*_*uer 24

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

%USERPROFILE%\.npmrc
Run Code Online (Sandbox Code Playgroud)

经测试:

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


try*_*sis 22

看起来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以后还有其他任何内容,则会重新创建.

在您的情况下(假设一年后它仍然相同),看起来您从未设置proxy选项npm.因此,作为npmconfig帮助页说,它被设置为任何你http_proxy(不区分大小写)环境变量.这意味着delete除非您想要"删除"您的HTTP代理,否则没有任何内容,尽管您可以set将选项或环境变量转换为其他内容并希望它们不会以某种方式破坏您的设置.


use*_*218 6

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


Vla*_*lin 5

如何弄清楚

开始于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
Run Code Online (Sandbox Code Playgroud)

每用户NPM配置

C:\Users\%username%\.npmrc
Run Code Online (Sandbox Code Playgroud)

内置NPM配置

C:\Program Files\nodejs\node_modules\npm\npmrc
Run Code Online (Sandbox Code Playgroud)

参考文献: