こんにちは、ゆんつです。
僕はWindows10のPCにNode.jsとnpmをインストールしています。
インストールしているNode.jsのバージョンは12.18.3でnpmのバージョンは6.14.6。
現在(2022年6月)の最新の安定版のNode.jsのバージョンは16.5.1でnpmは8.11.0で、僕のPCにインストールされているバージョンはかなり古くなってしまいました。
久しぶりにNode.jsを使うことになったので、Node.jsとnmpを現時点の一番新しいものにバージョンアップすることにしました。
もくじ
WindowsでのNode.jsとnpmのバージョンアップ方法
WindowsでNode.jsとnpmのバージョンアップをするのはとても簡単です。
まず、Node.jsのWEBサイトにアクセスします。
そして「推奨版」と書かれた方をダウンロード。
ダウンロードしたmsiファイルをダブルクリックして実行。
Node.jsのセットアップウィンドウが開くので、あとはずっと「NEXT」ボタンをクリックしてインストールを完了させれば良いだけです。
インストール完了!
インストールが完了したのでバージョンを確認してみます。
バージョンはNode.jsが16.5.1でnpmが8.11.0と最新になっているのですが、npmに警告メッセージのようなものが出ています。
npm WARN config global
--global
,--local
are deprecated. Use--location=global
instead.
翻訳してみると
config global
--global
、--local
は非推奨です。代わりに--location=global
を使用してください。
というメッセージみたいです。
npxのコマンドなどを使っても、この警告メッセージが出ます。
Node.jsのインストールだけでアップデートが完了すると思っていましたが、これを解決しなければならなくなりました。
警告メッセージが出ないように色々試してみる
この警告メッセージについて調べてみたところ、以下のサイトが引っかかりました。
この警告メッセージの改善方法についての質問をしているスレッドです(元は英語なのでgoogleで翻訳しています)
そこの回答に書かれていた改善案を試してみたいと思います。
npmを8.12.1にアップデートする
npm8.12.1にすると警告が修正されるという回答がありました。
ですので、これを試してみます。
コマンドプロンプトから
npm install -g npm
でnpmを更新します。
nmpのバージョンをチェックしてみると、npmのバージョンは8.12.1に更新されましたが相変わらず警告メッセージは出ています。
4つのファイルの「prefix -g」を「prefix --location=global」に置き換える
npmを8.12.1にしても改善しなかったので、別の回答を試してみます。
それは、nodejsフォルダにある
- npm
- npm.cmd
- npx
- npx.cmd
という4つのファイルを管理者権限で実行したコードエディタでそれぞれ開いて、「prefix -g」となっているコードを「prefix --location=global」に置き換えるという方法です。
それでは、順次置き換えていきます。
C:\Program Files\nodejs
にアクセスし、npmというファイルを管理者権限で実行したVSCODEなどのコードエディタで開きます。
そして、23行目にある「prefix -g
」を「prefix --location=global
」に置き換えます。
続いてnpm.cmdというファイルを開き、12行目にある「prefix -g」を「prefix --location=global」に置き換えて上書き保存。
さらに、npxを開き32行目の「prefix -g」を「prefix --location=global」に置き換え。
最後に、npx.cmdを開いて13行目の「prefix -g」を「prefix --location=global」に置き換え。
以上で作業は完了です。
ファイルを上書き保存してバージョンを確認してみると、これまで出ていた警告メッセージが出なくなりました!
また、npxなどのコマンドを使用しても警告メッセージは出なくなりました。
警告メッセージについても無事解決しました!
警告メッセージが気にならないなら放っておいても良いと思います
僕は警告メッセージが出るのが気持ち悪かったので色々と改善方法を試しましたが、警告メッセージが出ても普通に使用することはできるので、気にならないなら放っておいても良いと思います。
ただ、警告メッセージが出ないほうが気分的にはスッキリします(笑)
何かの参考になれば幸いです。
それでは、またー。