2

コンソールからのRunnin

> 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、2番目のものが戻りますC:\Program Files (x86)\nodejs\node_modules。モジュールをインストールするときにも同じことが起こります。これをプログラムで実行すると、AppDataではなくプログラムファイルにインストールしようとします。

これはバグでしょうか?それとも私は何か間違ったことをしていますか?

Linuxでは一貫して動作します。私はMacで試したことがありません。

更新:これをMacで試しましたが、正常に動作します。

4

1 に答える 1

4

違いはnpmrc、Windows用の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 に答える