Windowsのnode.jsモジュールのデフォルトのグローバルインストールディレクトリを変更しますか?


134

私のWindowsインストールにPATHC:\Program Files\nodejs、実行可能ファイルnode.exeが含まれているが含まれています。nodeシェルだけでなくからも起動できnpmます。新しい実行可能ファイルもインストールしたいのですC:\Program Files\nodejsが、実現できないようです。

設定NODE_PATHNODE_MODULES変数は何も変更しません。物事は%appdata%\npmデフォルトでインストールされています。

グローバルインストールパスを変更するにはどうすればよいですか?


5
おそらく、gremoがすべてのnodejs関連の依存関係を1か所に置きたいためです。問題は、nodejsを更新すると、インストールされているすべてのパッケージが失われることです。一方、npmをユーザーの%appdata%フォルダーに置くと、同じマシン上の他のユーザーがnpmにアクセスできなくなります。通常のユーザーvs管理者としてインストールすることを考えてください。
Volker E.


1
%AppData%からより制御された場所に移動することは、私にとって%temp%っぽい感じがするので、私には非常に理にかなっています。(Firefoxのプロファイルや他のいくつかについても同じことを行います)。ただしC:\Program Files、継続的な管理者権限の問題に備えています。doどんどん動かしたいD:\my-repository\npm
Frank Nocke

2
@WiredPrairieは、ユーザーフォルダーへのインストールが非常に愚かであるためです。パッケージを「グローバルに」インストールする全体のポイントは、システム全体がこれらのパッケージにアクセスできることです。
Michael Trouw、2016年

4
これを行う理由は次のとおりです。私のネットワークでは、AppDataフォルダーからコードを実行することは許可されていません。これは、多くの場合、マルウェア、特にCodeLockerがダウンロードされて実行されるためです。マルウェアに対する保護の追加レイヤーです。Nodeはそこに物をインストールするので、インストール場所を移動したり、システムのセキュリティを低下させたりせずにノードモジュールを実行することはできません。
Steve Hiner

回答:


81

あなたが必要とするすべてはnpm-foldersドキュメンテーションを読むことです。私は今、Winノートブックを起動したくないので確認できませんが、設定ファイルのみを変更prefixする必要がありc:\Program Files\nodejsます。すべてのユーザーに対してグローバルに変更する場合は、c:\Program Files\nodejs\npmrcファイルを編集します。それ以外の場合はcreate / editを実行しますc:\Users\{username}\.npmrc

しかし、この変更にはおそらくいくつかの副次的な影響があるため、前にこの説明をお読みください。あなたの考えは良いものではないと思います。


33
npmrcファイルはC:\path\to\nodejs\node_modules\npm\npmrc
Volker E

3
npm config set cache <new cache location> --globalモジュールのインストール中に問題が発生し、キャッシュが共有ドライブにある場合は、npmキャッシュの場所をローカルディレクトリに変更します。ENOENT: no such file or directoryキャッシュが共有ドライブにあるときにこのエラーが発生しました
redDevil

1
新しいnpmフォルダーを指すようにシステムPATH変数を更新することを忘れないでください。
Hayko Koryun 2016年

64

インストールしようとしてグローバルにパッケージをC:\Program Files (x86)\nodejs\私に与えた管理者として実行]を NPMがにインストールしようとしていたので、問題
C:\Program Files (x86)\nodejs\node_modules\

これを解決するには、グローバルインストールディレクトリをC:\Users\{username}\AppData\Roaming\npm次のように変更します。

C:\Users\{username}\.npmrc内容を含むファイルを作成します。

prefix = "C:\\Users\\{username}\\AppData\\Roaming\\npm"

参照

Windows 7 Ultimate N 64ビットSP1上の環境
nodejs x86インストーラー:v0.10.28 :1.4.10C:\Program Files (x86)\nodejs\
node --version
npm --version


これは私がnpm 2.1.6を使用していて、すべてのグローバルモジュールを%appdata%/ npmにインストールしていたのは奇妙です。プログラムファイル\ ..この動作がいつ変更されたか知っていますか?
WORMSS 2015年


それは私がnpmをインストールした別の方法と関係しているようです。でも差分をありがとう。
WORMSS 2015年

2
npm構成セットのプレフィックスC:\ Users \ {username} \ AppData \ Roaming \ npm
BernhardDöblerOct

62

これに対する私の答えは、別の質問に対する私の答えで確認できます。


Windowsでは、グローバルインストールパスは実際にはユーザーのプロファイルディレクトリにあります。

  • %USERPROFILE%\AppData\Roaming\npm
  • %USERPROFILE%\AppData\Roaming\npm-cache
  • 警告:時限イベントや他の自動化を別のユーザーとして実行している場合は、必ず実行してください npm installとしてしてそのユーザーとしてして。一部のモジュール/ユーティリティはグローバルにインストールする必要があります。
  • インストーラーのバグ:これらのディレクトリーを作成するか...\npm、ユーザー自身のパスにユーザーのパスを追加する必要がある場合があります。

すべてのユーザーの「グローバル」ロケーションをより適切な共有グローバルロケーションに変更するには%ALLUSERSPROFILE%\(npm|npm-cache)(管理者としてこれを行います):

  • 作成する [NODE_INSTALL_PATH]\etc\ディレクトリを
    • これは、npm config --global ...アクションを実行する前に必要です
  • npmモジュールのグローバル(管理)ロケーションを作成する
    • C:\ProgramData\npm-cache -npmモジュールがここに配置されます
    • C:\ProgramData\npm -グローバルにインストールされたモジュールのバイナリスクリプトがここに配置されます
    • C:\ProgramData\npm\node_modules -グローバルにインストールされたモジュールがここに配置されます
    • 権限を適切に設定する
      • 管理者:変更
      • 認証済みユーザー:読み取り/実行
  • グローバル構成設定の設定(管理者コマンドプロンプト)
    • npm config --global set prefix "C:\ProgramData\npm"
    • npm config --global set cache "C:\ProgramData\npm-cache"
  • C:\ProgramData\npmシステムのパス環境変数に追加します

ユーザーの「グローバル」ロケーションを%LOCALAPPDATA%\(npm|npm-cache)パスに変更する場合:

  • 必要なディレクトリを作成します
    • C:\Users\YOURNAME\AppData\Local\npm-cache -npmモジュールがここに配置されます
    • C:\Users\YOURNAME\AppData\Local\npm -インストールされたモジュールのバイナリスクリプトがここに配置されます
    • C:\Users\YOURNAME\AppData\Local\npm\node_modules -グローバルにインストールされたモジュールがここに配置されます
  • npmを構成する
    • npm config set prefix "C:\Users\YOURNAME\AppData\Local\npm"
    • npm config set cache "C:\Users\YOURNAME\AppData\Local\npm-cache"
  • 新しいnpmパスを環境のに追加しますPATH
    • setx PATH "%PATH%;C:\Users\YOURNAME\AppData\Local\npm"

1
中央の提案に従ってグローバルロケーションをC:\ ProgramDataに設定することは、Windows環境ではこれに最適な場所のようですが、プレフィックスを使用してグローバル構成ファイルでプレフィックスを設定する方法がわかりませんグローバル構成ファイルを見つけます。組み込みの構成ファイルC:\ Program Files \ nodejs \ node_modules \ npm \ npmrcを編集して同じ結果を達成しましたが、この変更が更新によって上書きされる可能性があると思います。
oenpelli 14年

@oenpelliこの場合、「global」は.npmrchome / profileディレクトリにあるユーザーのファイルです。すべてのユーザーに対して設定する必要があります。
Tracker1

Windowsの管理者権限がない場合、グローバルインストールを変更するにはどうすればよいですか?
liam xu 2016

リアム、あなたはあなたのユーザーのため.npmrcにあなたのプロファイルディレクトリのファイルを介してこれを調整することができます...しかし、その時点でymmv。
Tracker1

19

chocolatey@Tracker のインストールコンセプトと@Trackerによって提案されたアイデアに基づいて、私にとってうまくいったのは以下を実行することでした。そして、Windowsのすべてのユーザーがnodejsとで作業して満足しましたnpm

C:\ProgramData\nodejsインストールディレクトリとして選択し、管理者グループのメンバーである任意のユーザーと共にnodejsインストールnodejsします。

これはチョコレートのように行うことができます: choco install nodejs.install -ia "'INSTALLDIR=C:\ProgramData\nodejs'"

次にnpm-cache、インストールディレクトリのルートに呼び出されるフォルダーを作成します。C:\ProgramData\nodejs\npm-cache

etcインストールディレクトリのルートに呼び出されるフォルダーを作成します。C:\ProgramData\nodejs\etc

NODE環境変数を次のように設定しますC:\ProgramData\nodejs

NODE_PATH環境変数を次のように設定します C:\ProgramData\nodejs\node_modules

%NODE%上記で作成した環境変数が追加されていること(またはそのパス)が追加されていることを確認します。%PATH%環境変数にいるます。

%NODE_PATH%\npm\npmrc以下の内容で編集prefix=C:\ProgramData\nodejs

コマンドプロンプトから、グローバル構成を次のように設定します...

npm config --global set prefix "C:\ProgramData\nodejs"

npm config --global set cache "C:\ProgramData\nodejs\npm-cache"

上記の手順は、npm(npm -g install npm@latest)を更新する前、またはインストールする前に、できれば順番に実行することが重要です。npmモジュールのです。

上記の手順を実行することでnodejs、システム全体のインストールとして実行し、適切な権限を持つすべてのユーザーが簡単に利用できるようになりました。各ユーザーは、次に実行することができますnodeし、npm必要に応じて。


「npm config list」の出力は何ですか。また、WindowsまたはLinuxで実行していますか?
Damilola、2015

両方で試してみました。npm config add prefix動作しますが、ここで言及されている環境変数はありません。この質問はそれをカバーしているため、私は別の質問を公開したくありませんでしたが、回答は(以外にnpm config)カバーしていません。
トリシス

NODE環境変数は、基本的にバイナリを公開するだけです。手順で説明したように、プレフィックスとキャッシュを設定する必要があります(以前に設定されていない場合)。
Damilola 2015

ああ、ありがとう。これは、回答やGoogleの他の場所からはあまり明確ではなかった。プログラムで変更する方が簡単なので、環境変数を探していましたが、1行のBashコマンドでも大丈夫だと思います。
トリシス

これは私にとっては美しく機能しました。細かい指示ありがとうございます!
ErnestoP、2015年

15

このコマンドを使用して、npmパッケージのグローバルインストールflocationを設定する必要があります

(git bash) npm config --global set prefix </path/you/want/to/use>/npm

(cmd / git-cmd) npm config --global set prefix <drive:\path\you\want\to\use>\npm

また、そのnpm-cacheすぐ隣の場所を検討することもできます。(Windowsの通常のnodejsインストールの場合と同様)

(git bash) npm config --global set cache </path/you/want/to/use>/npm-cache

(cmd / git-cmd) npm config --global set cache <drive:\path\you\want\to\use>\npm-cache


1
お役に立ててうれしいです。また、環境を変更するたびにシェルスクリプトまたはバッチファイルを作成して、これを実行することもできます。少なくともそれがIDの機能です
davejoem 2017年

パスにスペースがある場合にも価値が「追加など。"C:\Program Files\blah"
taylorswiftfan

7
  • ステップ1

    npm config get prefix

    • デフォルトのパスは: %USERPROFILE%\AppData\Roaming\npm
  • ステップ2

    npm config get cache

    • デフォルトのパスは: %USERPROFILE%\AppData\Roaming\npm-cache
  • ステップ3

    npm構成セットプレフィックス\ npm

    • npm config set prefix C:\\dev\\node\\npm
  • ステップ4

    npm config set cache \ npm-cache

    • npm config set cache C:\\dev\\node\\npm-cache

手順1と2を再度実行して、パスが必要に応じて更新されているかどうかを確認します

それでおしまい。グローバルパッケージをインストールすると、\ npm \ node_modules内にインストールされているはずです。


あなたの解決策が私の問題を解決したおかげで、私は問題を解決しようとしていた過去2週間から、実際に私のWindowsユーザーパスにはABC XYZ WJSのようにスペースが含まれていたので、npmのインストールでパスが1ワードに変更されましたエラーなので、あなたのソリューションは私がキャッシュをクリアし、キャッシュを私の新しい場所に設定するのを助けます
Tahir Afridi

4

デフォルトのグローバルフォルダーはC:\Users\{username}\AppData\Roaming\npmです。(存在しない場合は).npmrcファイルを作成しC:\Users\{username}\て追加でき prefix = "path\\to\\yourglobalfolder"ます。Windowsでは、パスをで区切る必要があることに注意してくださいdouble back-slash



1

Windowsでは、ディスクCのnpmまたはnodejsフォルダーを別の場所に移動したいが、それでもノードとnpmが適切に機能する場合は、次のようなシンボリックリンクを作成できます。コマンドプロンプトを開きます。

mklink /D "your_location_want_to_create_symlink" "location_of_node_npm_file"

例:

mklink /D "C:\Users\MyUser\AppData\Roaming\npm" "D:\Nodejs Data\npm"

これでnpmフォルダーのシンボリックリンクが作成されました。このシンボリックリンクはD:\Nodejs Data\npmすべてが正常に機能することを示します。


0

私はここでほとんどの答えを試しましたが、私の場合はうまくいかないようです。そこで、環境変数のTempの場所をC:\ npmに変更しました。それからそれは働き始めました。これは良い考えではありませんが、一時的な解決策です。


0

プログラムファイルフォルダーからノードフォルダーを完全に削除します。node.jsをアンインストールしてから再インストールします。環境変数PATHのパスを変更します。C:\ users \ yourusernameから.npmrcファイルを削除する


2
あなたの発言を裏付ける文書や情報源はありますか?現在の状態で書かれているように、提案を実際に試さなくても実際に機能するかどうかを判断することは困難です。
Filnor、2018

0

高度なシステム設定に進み、ノードをインストールしたパスをコピーして環境変数を作成し、プロンプトでnode -vコマンドを使用して確認するだけで、多くの設定は必要ありません。


0

Windowsでnode.js(npm)モジュールのデフォルトのグローバルインストールディレクトリを変更するには、2つのパスを修正する必要があります。

最初に、次のコマンドを使用してグローバルにインストールしようとするときに、ノードモジュールがインストールされている現在のパスを確認します。

npm list -g --depth = 0

ノードモジュールが現在インストールされている現在のパスが返されます。例:D:\ vsc \ typescript

次のパスにアクセスして、npmおよびnpm-cacheフォルダーを確認します。C:\ Users \ username(OR Number)\ AppData \ Roaming

Cドライブのローミングフォルダーには、npmおよびnpm-cacheフォルダーがあります。+ npm +フォルダをクリックしてパスを選択します[バーのパスをクリックするだけで自動的に選択され、コピーされます]。これは選択する必要があるパス画像です

このパスをコピーしたら、変数名Path(名前として選択できるもの)を使用して、これを環境変数に設定します。これで、npmフォルダーのパスを設定しました。ここで、プレフィックスを設定します。npmフォルダー内に移動し、node_moduleフォルダーが存在するかどうかを確認します。存在しない場合は、node_modulesという名前の新しいフォルダーを作成します。すべての手順を完了すると、すべてのグローバルモジュールがこのフォルダーに格納されます。

最終ステップ:CMDに移動して、次のコマンドを右に移動します。

npm setプレフィックスC:\ Users \ username(Number)\ AppData \ Roaming \ npm \ node_modules

繰り返しますが、これは環境変数に選択したパスと同じです。パスにフォルダーを1つ追加するだけで、それはnode_moduleです。

すべて設定....今すぐ試す...うまくいく


0

次のコマンドを実行して、グローバルノードパッケージインストールの現在のパスを見つけます。

npm list -g --depth = 0

次のコマンドを実行して、このパスを正しいパスに変更します。

npm setプレフィックスC:\ Users \ username(Number)\ AppData \ Roaming \ npm \ node_modules

それは私のために働いた。理解を深めるために以前の回答を読んでください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.