从控制台跑步
> npm root -g
或以编程方式
var npm = require("npm");
npm.load(null, function (err, npm) {
npm.config.set("global", true);
npm.root;
});
我在Windows上获得了不同的结果。第一个返回C:\Users\myuser\AppData\Roaming\npm\node_modules
,第二个返回C:\Program Files (x86)\nodejs\node_modules
。安装模块时会发生同样的情况,以编程方式尝试将其安装在程序文件而不是AppData上。
这可能是个错误吗?或者我做错了什么?
在Linux上,它始终如一地运作。我没试过Mac。
更新:我在Mac上试过这个并且工作正常。
答案 0 :(得分:4)
差异似乎是Windows的Node.js安装中包含的npmrc
:
# C:\Program Files (x86)\nodejs\node_modules\npm\npmrc
prefix=${APPDATA}\npm
它的路径定位它要处理as a builtin
config,而不是global或user配置,因此“本地”安装npm
不会处理它。直接执行本地安装时可以看到这一点:
> .\node_modules\.bin\npm root -g
C:\Program Files (x86)\nodejs\node_modules