2

从控制台运行

> 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 上试过,效果很好。

4

1 回答 1

4

不同之处似乎在于npmrcWindows 的 Node.js 安装中包含的内容:

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

prefix=${APPDATA}\npm

它的路径位置将其作为builtin配置处理,而不是全局用户配置,因此“本地”安装npm不会处理它。直接执行本地安装时可以看到:

> .\node_modules\.bin\npm root -g
C:\Program Files (x86)\nodejs\node_modules
于 2013-02-13T06:30:25.487 回答