在Windows上,NPM全局标志似乎不一致

时间:2013-02-13 03:51:33

标签: node.js npm

从控制台跑步

> 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上试过这个并且工作正常。

1 个答案:

答案 0 :(得分:4)

差异似乎是Windows的Node.js安装中包含的npmrc

# C:\Program Files (x86)\nodejs\node_modules\npm\npmrc

prefix=${APPDATA}\npm

它的路径定位它要处理as a builtin config,而不是globaluser配置,因此“本地”安装npm不会处理它。直接执行本地安装时可以看到这一点:

> .\node_modules\.bin\npm root -g
C:\Program Files (x86)\nodejs\node_modules