nvmを使用してnpmのバージョンを変更するにはどうすればよいですか?


238

私は、NVMを使用して、ノード作業用の最新バージョンのnodeJSをインストールしています。個別のバージョンをインストールしてそれらを切り替える場合は、まったく問題なく動作します。また、ノードのバイナリとともに、各ローカル... / binフォルダー内にNPMの最新バージョンをインストールします。ただし、私が使用しているNPMのバージョンを切り替える方法はないようです(または少なくともそれを理解できません)。

私が考えることができる唯一の解決策は、デフォルトのバイナリ(NVMでノードを最初にインストールしたときにインストールされたNPM)を削除し、代わりに最新のNPMバイナリを配置することです。しかし、これを行うにはもっと良い方法があるかどうか疑問に思っています。


1
なぜNPMのバージョンを変更したいのですか、古いバージョンのNPMでのみ機能するパッケージをインストールするようなものではありません。そして、ノード0.6以降、ノードには最新のNPMが付属しています。したがって、ノードのバージョンを変更すると、npmのバージョンも変更されます。
Farid Nouri Neshat

1
NVMを経由しない場合を除きます。はい-ノードにはNPMが付属していますが、それはそれとともにバイナリをインストールすることを意味します。両方のバイナリをそれぞれのフォルダで確認できますが、「nvm use v0.6.13」を実行すると、使用中のnpmバイナリは、最新バージョンでインストールされたものではなく、古いバージョンのノードでインストールされたもののままです。
thisissami

1
npmのコードは次のとおりです:github.com/creationix/nvm/blob/master/nvm.sh#L135-148、0.6以降は不要なので、おそらくその部分を削除する必要があります。それは役立つはずです。githubで課題を作成することもできます。
Farid Nouri Neshat

私は今この問題に取り組んでいます、すべてのヘルプは大歓迎- stackoverflow.com/questions/50976138/...
アレクサンダー・ミルズ

回答:


329

編集:この質問が最初に回答されから数年後、新しい回答に記載されているように今これのためのコマンドがあります:

nvmにnpmを更新するコマンドが追加されました。それのnvm install-latest-npmnvm install --latest-npm

nvm install-latest-npmnpm現在のノードバージョンで動作している最新のものにアップグレードしてみます

nvm install --latest-npm:インストール後、指定されたノードバージョンで最新の正常なnpmへのアップグレードを試みます

以下は、この質問に対する正解の以前のリビジョンです。

この質問が最初に尋ねられてから3年以上経過した今、答えははるかに単純になっているようです。にあるnvmがインストールしたバージョンを更新するだけ~/.nvm/versions/node/[your-version]/lib/node_modules/npmです。

npm 2.14.7に付属するノード4.2.2をインストールしましたが、npm 3を使用したいので、次のようにしました。

cd ~/.nvm/versions/node/v4.2.2/lib
npm install npm

かんたん!

そして、はい、これは特定のバージョンのノードで「グローバル」にしたいnpmだけでなく、どのモジュールでも機能するはずです。


編集1:最新バージョンでnpm -gは、スマートであり、システムのグローバルパスではなく上記のパスにモジュールをインストールします。


コメントでこれを指摘してくれた@philrajに感謝します。


13
そしてそのNVMがどこにあるかわからない人のために、私のように、実行しますwhich npm
Larry

16
そして、あなたが実行し、最新以外のNPMのバージョン、必要な場合npm install npm@major.minor.patch、その特定のバージョン、例えば取得するnpm@3.10.9
マイケル・

2
同様のものがnvm-windowsでも機能しますcd ~/AppData/Roaming/nvm/v5.10.1
absynce 2017

2
Windowsでnvmを使用している場合は、上記と同じように(npm install npmを実行)できますが、Windowsのノードインストール場所で実行できます。Windows 10では、これは〜/ AppData / Roaming / nvm / [your-version]です。つまり、Users \ myusername \ AppData \ Roaming \ nvm \ v9.7.1
Sean Holmesby

3
さらに簡単:nvm install-latest-npm- samlandfriedによって下に答えてstackoverflow.com/a/47519162/5991278
philraj

43

nvmはnpmを処理しません。

したがって、ノード0.4.x(多くのパッケージが依然依存している)をインストールしてNPMを使用する場合でも、npm 1.0.xを使用できます。

ノード0.6.x(npm 1.1.xに付属)をインストールし、nvmをnpmでインストールします。

npm install nvm
. ~/nvm/nvm.sh

nvmでノード0.4.xをインストールします。

nvm install v0.4.12
nvm use v0.4.12

install.shを使用してnpmをインストールします(-Lリダイレクトに従うためのparamに注意してください):

curl -L https://npmjs.org/install.sh | sh

これにより、ノード0.4.12が検出され、npm 1.0.106が〜/ nvm / v0.4.12 / lib / node_modulesフォルダーにインストールされ、nvmのシンボリックリンクが作成されます

~/nvm/v0.4.12/bin/npm -> ../lib/node_modules/npm/bin/npm-cli.js

npmを実行しようとすると、エラーが発生しますが、nvm use v0.4.12再度実行すると動作するはずです。


3
ありがとう!:URLが変更されたことに注目すべき curl https://npmjs.org/install.sh | sh
tristen

7
これは本当に古い答えですか?私のnpmは、使用しているノードバージョンの依存関係としてnvmによって自動的にダウンロードされます。
デイモン・スミス

2
うん。古いです。まだノード0.4と古いnvmを使用している場合は、この問題が発生する可能性があります。
fijiaaron、2015年

1
URLは再びwwwを強制するように変更されました。curl -Lリダイレクトに従うために使用します。
Neal Ehardt、2015年

32

nvmにnpmを更新するコマンドが追加されました。それのnvm install-latest-npmnpm install --latest-npm


3
このドキュメントへのリンクはありますか?
アリカン

1
nvm helpコンソール出力から: しかし--latest-npm After installing, attempt to upgrade to the latest working npm on the given node versionnvmドキュメントにこれへの参照が見つかりませんでした。見つけたらシェアしてください。
samlandfried

ありがとうございました!これは本当に正解としてマークする必要があります。
フィラジ

32ビットでのみ利用可能
Negin Basiri

30
npm install npm@x.x.x -g
npm install npm@5.4.0 -g

2
問題はnvmについてですが、私は実際にそのためにここに来ました、ありがとう。賛成票。
アトラハシス

26

私はWindowsを使用していますが、これらを機能させることができませんでした。ファイルが邪魔になっているというエラーが発生し続けました。これはうまくいきました:

cd %APPDATA%\nvm\v8.10.0           # or whatever version you're using
mv npm npm-old
mv npm.cmd npm-old.cmd
cd node_modules\
mv npm npm-old
cd npm-old\bin
node npm-cli.js i -g npm@latest

cd %APPDATA%\nvm\v8.10.0 # or whatever version you're using
rm npm-old
rm npm-old.cmd
cd node_modules\
rm -rf npm-old

そしてブーム、私はビジネスに戻ってきました。


3
おかげで、これはWindowsでも同様に機能しました。(ファイル競合の同じ問題がありました)
Venryx 2018

1
私のために働いたthx。Windowsでnvmを使用してノードを管理しており、ノードバージョンに切り替えた後にnvmを引き上げたいと考えています。管理者特権でコンソールを実行する必要がありました。私のパスのnodejsフォルダーは「C:\ Program Files \ nodejs」です。これは、nvmをインストールするときに別の場所を選択したと思います。
Moikaが

2
ありがとうございます。おそらく、nvmウィンドウ上のすべての古いnodejsバージョンでnpmを更新する方法を修正する必要があります。
rbinsztock

1
これは、ノード10.xに付属するnpmを更新するのに役立ちました。ありがとうございました!
アンディポテト

2
nodejs v10.15.3と窓に従事、変更しなければならなかったmvrenしてrmdelし、rmdir私のために。
deerchao

17

LinuxベースのOSでnpmバージョンを変更することは、まだ単純な1つのコマンドプロセスではありません。古いバージョンのnpmに切り替えるために、以下を実行しました。これはnpmのどのバージョンでも機能するはずです。最初に、使用するnpmのバージョンをインストールします。

sudo npm install -g npm@X.X.X

/ usr / local / bin /のsymリンクを削除します

sudo rm /usr/local/bin/npm

インストールしたnpmの目的のバージョンを使用してsymリンクを再作成します

sudo ln -s /usr/bin/npm@X.X.X /usr/local/bin/npm

1
2.14.7から2.15.9に移動しようとするこれらの指示に従いましたが、npm -vと入力すると、3.8.6が表示されます。くそったれ。
カイルベイカー

3
いくつかのことを試した後、私にとっては、使用sudo npm install -g npm@x.x.xするだけでそのバージョンがから応答しnpm -vます。とにかく、これは少なくとも4.xから2.15.9まで機能しました。
Kyle Baker

1
私の場合、sudo npm install -g npm@4.6.14.6.1のみをインストールしましたが、npm 5.1.0がまだ使用されていました。あなたのヒントは、4.6.1に切り替えるのに役立ちます。
Hung Tran

8

www.npmjs.com/install.shを見ると、環境変数を設定して特定のバージョンをインストールする方法があることがわかりました

export npm_install="2.14.14"

次に、npmjs.comで説明されているようにダウンロードスクリプトを実行します。

curl -L https://www.npmjs.com/install.sh | sh

npm_install変数の設定を省略すると、最新としてマークされているバージョンがインストールされます


2
curl -L https://www.npmjs.com/install.sh | sudo shaaaa を使用する必要があり、この方法は機能しませんでした。上記の環境変数をエクスポートしたにもかかわらず、最新バージョンを取得しました。チクショウ。2.14.7からバージョン2.15.9が欲しかったので、以下の回答で3.8.6になり、この回答で4.0.2になりました。WTF。
カイルベイカー

6

Windowsでは、ターミナルを管理者として実行します(私が持っていたように権限の問題がある場合)。次に、特定のノードバージョン(たとえば7.8.0)を使用します。

nvm use 7.8.0

次に、npmを目的の特定のバージョンに更新します

npm install -g npm@5.0.3


2

上記の手順のわずかなバリエーションは、私のために働きました。(MacOS Sierra 10.12.6)

npm install -g npm@3.10.10
rm /usr/local/bin/npm
ln -s ~/.npm-packages/bin/npm /usr/local/bin/npm
npm --version


0

nvm-windows既存のノードインストールの上にインストールした後、同じ問題が発生しました。解決策は単に指示に従うことでした:

また、nvmのインストール場所が正しく使用されるように、既存のnpmのインストール場所(「C:\ Users \ AppData \ Roaming \ npm」など)も削除する必要があります。

インストールとアップグレード


0

WindowsでのNVMのインストールと使用

以下は、WindowsでのNVMインストールの手順です。

NVMはノードバージョンマネージャーの略で、ノードのバージョンを特定の用途に切り替えるのに役立ちます。また、ユーザーは複数のnpmおよびノー​​ドバージョンを操作できます。

nvmセットアップをインストールします。インストールされたノードバージョンのリストを確認するには、コマンド「nvm list」を使用します。バージョンを切り替えるには、「nvm use version number [6.9.3]」と入力します。以下のためのより多くの情報

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