
npm コマンドを実行しようとすると、次のエラーが発生します。
internal/modules/cjs/loader.js:626
throw err;
^
Error: Cannot find module 'semver'
Require stack:
- /usr/share/npm/lib/utils/unsupported.js
- /usr/share/npm/bin/npm-cli.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:623:15)
at Function.Module._load (internal/modules/cjs/loader.js:527:27)
at Module.require (internal/modules/cjs/loader.js:681:19)
at require (internal/modules/cjs/helpers.js:16:16)
at Object.<anonymous> (/usr/share/npm/lib/utils/unsupported.js:2:14)
at Module._compile (internal/modules/cjs/loader.js:774:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:785:10)
at Module.load (internal/modules/cjs/loader.js:641:32)
at Function.Module._load (internal/modules/cjs/loader.js:556:12)
at Module.require (internal/modules/cjs/loader.js:681:19) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'/usr/share/npm/lib/utils/unsupported.js',
'/usr/share/npm/bin/npm-cli.js'
]
}
私は基本的に FreeCodeCamp をオフラインで使用しようとしていました。コマンド「npm ci」を実行するように求められましたが、そこからこのエラーが発生し始めました。
npm を再インストールしてみましたが、うまくいきませんでした。semver モジュールのインストールも試しましたが、これも役に立ちませんでした。
何が問題なのでしょうか、またどうすれば修正できるのでしょうか?
答え1
同様の質問が見つかりましたここそしてその答えはうまくいきました。
sudo rm -rf /usr/local/bin/npm /usr/local/share/man/man1/node* ~/.npm
sudo rm -rf /usr/local/lib/node*
sudo rm -rf /usr/local/bin/node*
sudo rm -rf /usr/local/include/node*
sudo apt-get purge nodejs npm
sudo apt autoremove
最新のtar.xz
NodeJSファイルをダウンロードしてくださいhttps://nodejs.org/ja/download/ より
tar -xf node-v#.#.#-linux-x64.tar.xz
sudo mv node-v#.#.#-linux-x64/bin/* /usr/local/bin/
sudo mv node-v#.#.#-linux-x64/lib/node_modules/ /usr/local/lib/
#.#.#
ダウンロードしたバージョンはどこにありますか。
インストールを確認するには
node -v
npm -v
答え2
Node JS/npm をどのように管理したいかによって異なります。
Bilbo Baggins が提案したように、公式 Web サイトから Node JS の最新の LTS バージョンをインストールできます。https://nodejs.org/ja/download/ より。
Ubuntu では、 を使用してデフォルトのリポジトリを通じて Node を管理する場合は、この方法でと のapt
両方をインストールするのが最適です。nodejs
npm
使用している npm のバージョンが、semver
インストールされている Node JS のバージョンと一致しない特定の場所にある可能性が非常に高いです。 のバージョンが 1 つだけnodejs
、 のバージョンが 1 つだけでありnpm
、両方がデフォルトのリポジトリを使用してインストールされている場合、これは完全に機能するはずです。
メインの Ubuntu リポジトリを使用して Node と npm を動作させるための最良のガイダンスを以下に示します。
sudo apt-get purge nodejs --auto-remove
そしてsudo apt-get purge npm --auto-remove
whereis node
: ノードのすべてのバージョンを 1 つずつ削除します。このコマンドが後に空白を返すまで繰り返しますnode:
。sudo apt-get install nodejs
node --version
: 戻るべき... no such file or directory
nodejs --version
: は を返しますv1x.x.x
。これは によってインストールされたバージョンですapt
。おそらく、Node JS Web サイトで入手できる最新バージョンよりも古いものになります。sudo apt-get install npm
npm --version
:nodejs
によってインストールされapt
、正常に動作します。
答え3
私はノードのバージョンを管理するためにnvmを使用していましたが、私の場合はnpm syslinkが壊れていたので、ノードをアンインストールしてから再インストールすることで解決しました。
ノードのバージョンを確認するにはnode --version
実行nvm uninstall <your version>
その後、再インストールしてくださいnvm install <your version
答え4
私も同じ問題を抱えていましたが、22.04 でした。上記のいずれも機能しませんでしたが、機能するこのプロセスを見つけました。 https://codemarvels.in/2021/03/20/npm-install-gives-error-cannot-find-module-semver/ 本質的には:
sudo rm -rf /usr/local/bin/npm /usr/local/share/man/man1/node* ~/.npm
sudo rm -rf /usr/local/lib/node*
sudo rm -rf /usr/local/bin/node*
sudo rm -rf /usr/local/include/node*
sudo apt-get purge nodejs npm
sudo apt autoremove
sudo apt-get install nodejs npm