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

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

100% 確信はありませんが、自宅とオフィスの両方の PC に Windows インストーラーから node 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 のファイル ウォッチャーにこれらのグローバル ツールの完全なパスを提供する必要がありますが、プロジェクト ファイルを共有しているため、ユーザー フォルダーの下にグローバル リソースを置かない方が合理的です。

グローバル インストールが異なるフォルダーに保存されるのはなぜですか。また、すべてのチーム メンバーに共通の場所に強制的に保存するにはどうすればよいでしょうか。

ベストアンサー1

によると:https://docs.npmjs.com/files/フォルダー

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

プレフィックス設定

プレフィックス構成のデフォルトは、ノードがインストールされている場所です。ほとんどのシステムでは、これは です/usr/localWindowsでは、これは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 上のデフォルトの場所になっているようで、このオーバーライドが実装される前に Office バージョンをインストールした可能性があります。

これは、すべてのチーム メンバーが自分の PC を基準とした同じ絶対パスにグローバルを保存できるようにするためのソリューションも示唆しています (管理者として実行)。
( cmdPowerShell ではなく で実行してください!)

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% に表示されないため、新しいウィンドウを開く必要があります)。

おすすめ記事