61

我根本找不到 npm 存储其全局设置的位置。

npm 配置获取用户配置

C:\Users\Jack\.npmrc

npm 配置获取全局配置

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

这些路径中的任何一个都没有文件,但是

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

npm config -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
4

8 回答 8

41

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

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

当您使用以下命令更新 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

于 2014-11-21T01:24:00.063 回答
38

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

%USERPROFILE%\.npmrc

经测试:

  • npm v4.2.0
  • Node.js v7.8.0
于 2017-04-07T10:14:09.133 回答
32

看起来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以后有任何其他事情,它就会重新创建。

在您的情况下(假设它在一年后仍然相同),看起来您从未proxynpm. 因此,正如帮助页面所说,它被设置为您的npm(不区分大小写)环境变量。这意味着没有什么,除非您想“删除”您的 HTTP 代理,尽管您可以将选项或环境变量设置为其他内容,并希望它们不会以某种方式破坏您的设置。confighttp_proxydeleteset

于 2014-04-03T19:29:03.710 回答
13

如何弄清楚

首先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

参考:

于 2018-12-10T14:28:43.580 回答
6

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

于 2016-02-23T13:32:27.987 回答
3

即使我们有 .NPMRC 可以位于 3 个位置,请注意 - Per-User 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 set https-proxy https://username:password@proxy.company.com:6050

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

于 2019-10-07T16:39:23.877 回答
1

这不是你要找的路吗?

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

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

于 2013-06-26T00:14:04.900 回答
1

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

npm config ls -l
于 2021-06-18T11:19:24.727 回答