npm WARN config global --global
, --local
are deprecated
問題概要
npmを使用してグローバルパッケージをインストールしようとすると、次の警告メッセージが表示されることがあります:
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.
この警告は、Node.jsの特定のバージョン(特にnpm 8.11系)に存在する既知の問題で、--global
および--local
フラグが非推奨となり、代わりに--location=global
を使用すべきであることを示しています。
注意点
この警告自体は操作を妨げるものではありませんが、npmの最新のコマンド構文に合わせて更新することが推奨されています。
根本原因
この問題は、以下の状況で発生します:
- Node.js 16.16.0などの特定のバージョンを使用している
- 付属のnpmバージョンが8.11系である
- Windows環境で発生することが多い(macOSやLinuxでも発生する可能性あり)
解決方法
方法1: npmのアップデート(推奨)
最も簡単で安全な解決策は、npm自体を最新バージョンにアップデートすることです。
npm install -g npm@latest
ヒント
管理者権限が必要な場合があります。WindowsではPowerShellまたはコマンドプロンプトを管理者として実行してください。
方法2: Node.js全体の再インストール
Node.jsを最新バージョンにアップデートすることでも解決します:
- Node.js公式サイトから最新バージョンをダウンロード
- 既存のNode.jsをアンインストール
- 新しいバージョンをインストール
方法3: 手動でのファイル修正(上級者向け)
npmをアップデートできない場合、以下のファイルを手動で修正できます:
C:\Program Files\nodejs
ディレクトリに移動以下の4つのファイルを編集:
npm
npm.cmd
npx
npx.cmd
各ファイル内の
prefix -g
をprefix --location=global
に置換
例(npm.cmdファイル):
:: 修正前
FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g') DO (
:: 修正後
FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix --location=global') DO (
注意
この方法は最終手段としてのみ使用してください。ファイルの編集を誤るとnpmが正常に機能しなくなる可能性があります。
方法4: npxの使用(Create React Appの場合)
Create React Appを使用する場合、グローバルインストールは推奨されません。代わりにnpxを使用しましょう:
npx create-react-app my-app
この方法では:
- 常に最新バージョンのCreate React Appが使用されます
- グローバルインストールによる競合が回避されます
- プロジェクトごとに異なるバージョンを使用できます
トラブルシューティング
アクセス権限の問題
Windowsでパッケージのインストールに失敗する場合、以下の対策を試してください:
- 管理者としてターミナルを実行
- アンチウイルスソフトの設定を確認(npmをブロックしていないか)
- プロジェクトフォルダの読み取り専用属性を解除
npm-windows-upgradeの使用
Windows環境では、専用のアップグレードツールを使用することもできます:
# 実行ポリシーの変更(一時的)
Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force
# アップグレードツールのインストール
npm install --global --production npm-windows-upgrade
# npmのアップグレード実行
npm-windows-upgrade --npm-version latest
# 実行ポリシーを元に戻す
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
まとめ
npmの非推奨警告は、以下のいずれかの方法で解決できます:
- npmの更新:
npm install -g npm@latest
- Node.jsの再インストール: 最新版を公式サイトから
- npxの使用: グローバルインストールを避ける
バージョン情報
この問題はnpm 8.12.1以降で修正されています。現在利用可能な最新のNode.jsバージョンを使用することで、この警告を完全に回避できます。
最新のNode.jsとnpmを使用することで、セキュリティアップデートやパフォーマンス改善も同時に得られるため、環境の定期更新を心がけましょう。