web-dev-qa-db-ja.com

Windows上のグローバルnpmインストール場所?

100%確信はありませんが、自宅とオフィスの両方のPCにWindowsインストーラーからノードv5をインストールしたと思います。

自宅のPCでは、%APPDATA%の下でグローバルインストールが行われます。

(dev) go|c:\srv> which lessc
c:\users\bjorn\appdata\roaming\npm\lessc
c:\users\bjorn\appdata\roaming\npm\lessc.cmd

私のオフィスのPCでは、プログラムファイルの下に移動します。

(dev) go|w:\srv> which lessc
c:\program files\nodejs\lessc
c:\program files\nodejs\lessc.cmd

これらの多くのグローバルツールへのフルパスをPyCharmのFile Watcherに提供する必要があります。プロジェクトファイルを共有しているので、ユーザーフォルダーの下にグローバルリソースがないことが理にかなっています。

グローバルインストールが別のフォルダーに配置されるのはなぜですか?また、チームメンバー全員に共通の場所に強制的にインストールする方法はありますか?

53
thebjorn

によると: https://docs.npmjs.com/files/folders

  • ローカルインストール(デフォルト):現在のパッケージルートの./node_modulesにデータを配置します。
  • グローバルインストール(-gを使用):ものを/ usr/localまたはノードがインストールされている場所に置きます。
  • Require()する場合は、ローカルにインストールしてください。
  • コマンドラインで実行する場合は、グローバルにインストールします。 ->両方が必要な場合は、両方にインストールするか、npmリンクを使用します。

プレフィックス設定

プレフィックス構成は、デフォルトでノードがインストールされている場所になります。ほとんどのシステムでは、これは/usr/localです。 Windowsでは、これはnode.exeバイナリの正確な場所です

ドキュメントは少し古くなっているかもしれませんが、グローバルインストールが異なるディレクトリに配置される理由を説明しています。

(dev) go|c:\srv> npm config ls -l | grep prefix
; prefix = "C:\\Program Files\\nodejs" (overridden)
prefix = "C:\\Users\\bjorn\\AppData\\Roaming\\npm"

他の回答に基づいて、Windowsのデフォルトの場所はオーバーライドであるように思われ、このオーバーライドが実装される前にオフィスバージョンをインストールした可能性があります。

これはまた、すべてのチームメンバーに、PCに対して同じ絶対パスにグローバルを保存させる、つまり管理者として実行するソリューションを提案します。

mkdir %PROGRAMDATA%\npm
setx PATH "%PROGRAMDATA%\npm;%PATH%" /M
npm config set prefix %PROGRAMDATA%\npm

新しいcmd.exeウィンドウを開き、すべてのグローバルパッケージを再インストールします。

説明(linenoによる):

  1. グローバルを保持するために、適切な場所にフォルダーを作成します(MicrosoftはProgramFilesに書き込むべきではないので、%PROGRAMDATA%は次の論理的な場所のようです。
  2. ディレクトリはパス上にある必要があるため、setx .. /Mを使用してシステムパスを設定します(HKEY_LOCAL_MACHINEの下)。これは、管理者権限を持つシェルでこれを実行する必要があるものです。
  3. npmにこの新しいパスを使用するように伝えます。 (注:このシェルの%PATH%にはフォルダーが表示されないため、新しいウィンドウを開く必要があります)。
44
thebjorn

パッケージをグローバルにインストールする場合の典型的なnpmパスは次のとおりです。

Windows XP - %USERPROFILE%\Application Data\npm\node_modules
Newer Windows Versions - %AppData%\npm\node_modules
29
Dennis Stücken

Windowsボタンを押して%APPDATA%と入力し、Enterと入力するだけです。

上記は\ npm\node_modulesフォルダーを見つけることができる場所です。これは、システム内でグローバルモジュールが存在する場所です。

12
Subhan Luckiest