web-dev-qa-db-ja.com

npmの更新でnpmが壊れました

このガイド に従ってnpmを更新し(noderedカメラモジュールが機能していなかったため)、実行しました

npm install -g npm

しかし、今では私のnpmインストールは完全に壊れているようです。入力するだけなら

npm

または

npm update

私は得る

/usr/local/lib/node_modules/npm/bin/npm-cli.js:79 let notifier = require( 'update-notifier')({pkg})^^^

SyntaxError:ブロックスコープ宣言(let、const、function、class)は、strictモード以外ではまだサポートされていません

私はもう試した

Sudo apt-get remove npm
Sudo apt-get install npm

しかし、再インストールは役に立ちませんでした。

私のノードバージョンはv4.8.2からアップグレードする必要があると思いますが、それはnpmでのみ可能だと思いましたか?

25
Wayneio

おそらくnpmを2回インストールします。1つは/usr/local/binに、もう1つは/usr/binにあります。

最初に、npmをアップグレードすることにより、インストールされたnpmモジュールを削除することができます。これを実行してみてください:

  • rm -r /usr/local/lib/node_modules/npm
  • /usr/bin/npm uninstall npm

Npmの実行バージョンを入手したら、npmをアップグレードする前にノードの最新バージョンをインストールします。次に、Linuxディストリビューションのバージョンを削除します。

最初の解決策が機能しない場合、別のアプローチはノードの最新バージョンをインストールすることです(もちろんnpmを使用せずに)

curl -sL https://deb.nodesource.com/setup_10.x | Sudo -E bash -
Sudo apt-get install -y nodejs
33
Maxime Chéramy

(centosのソリューション.... ubuntuでも動作すると想定しています):

centOSマシンを完全にクリーンアップするために、さらに次のことを行いました。ユーザーは「centos」、自宅は/ home/centosです。

Sudo rm -rf /usr/local/bin/npm 
Sudo rm -rf /usr/local/bin/npx
Sudo rm -rf /usr/lib/node_modules/
Sudo rm -rf /usr/bin/npm
Sudo rm -r /usr/local/lib/node_modules/
Sudo rm -rf /usr/local/bin/node
Sudo rm -rf /usr/bin/npm
Sudo rm -rf /usr/lib/node_modules/
rm -rf /home/centos/.npm/
rm -rf /home/centos/node*
rm -rf /home/centos/.node-gyp/
Sudo rm -rf /root/.npm/
Sudo rm /usr/bin/node
Sudo rm -rf /usr/local/include/node

この時点でのみ再インストールしました:

wget http://nodejs.org/dist/latest/node-v11.4.0-linux-x64.tar.gz
Sudo tar --strip-components 1 -xzvf node-v* -C /usr/local

そして、物事は再び機能しています:

node --version
v11.4.0
npm --version
6.4.1
6

これを見つけるためにgoogleを使用した人には、curl -sL https://deb.nodesource.com/setup_10.x | Sudo -E bash -を介してインストールし、Sudo apt install nodejsを使用してインストールしたいと思うかもしれません。

しかし、私はどういうわけかこの問題に遭遇しました。 npm @ 6はnode @ <= 4のサポートを廃止したことに注意してください。これがここでの貢献要因です。すべてが最新の正しいバージョンでインストールされていることを確認したい場合は、nvmでインストールすることを強くお勧めします。

GitHubのnvm命令を使用 :インストールスクリプトを追加するには

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash

その後、nvmの使用を開始できます。おそらく端末を再起動する必要があるため、インストール後、端末を終了し、再度起動して、nvmがnvm --versionでインストールされていることを確認します。

すべてがうまくいけば、npmを使用して特定のバージョンのノードをインストールできます。これを書いている時点でのノードの最新の安定バージョンは10.15.3なので、

 nvm install 10.15.3

そしてもちろん、助けが必要な場合、nvm --helpにはオプションのリストがあります。

2
ZontarZon

Nvmを使用してnpmとノードをインストールする場合は、この解決策を試してください。

  1. 現在使用されているノードとnpmがインストールされている場所を正確に把握します。

    which node

    私の場合、それは/home/ubuntu/.nvm/versions/node/でした

  2. 次に、次を使用してノードのすべてのバージョンを削除します。

    Sudo rm -rf /home/ubuntu/.nvm/versions/node/

  3. これで、nvmを使用して必要なバージョンのノードとnpmをインストールできます。

    nvm install 4.9.1

1
Achint Sharma

他の回答はUbuntuで機能せず、npmが壊れているか、npmを再インストール/更新できないため、行き止まりになりました。

私が使用した根本的な解決策:

1 /ノードのすべてのトレースを削除します。下部にあるremove.shスクリプトを使用して、このページに従ってください。 http://kselax.ru/en/npm-errors/

2 /次に、最新のインストールスクリプトを使用して、最初からnodejs + npmを再インストールします。 https://github.com/nodesource/distributions/blob/master/README.md

0
Thibault

私にとって、npmを再インストールするとうまくいきました:

npm install -g npm
0
Abhinav Kumar