Npm 在 Ubuntu 19.04 中找不到模块“semver”错误

Shi*_*rel 9 dependencies npm 19.04

每当我尝试运行 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'
  ]
}
Run Code Online (Sandbox Code Playgroud)

我基本上是在尝试离线使用 FreeCodeCamp。它要求我运行命令“npm ci”,从中我开始收到此错误。

我尝试重新安装 npm 但它不起作用。我也尝试安装 semver 模块,这也没有帮助。

可能出了什么问题,我该如何解决?

小智 22

在这里找到了一个类似的问题,答案奏效了。

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
Run Code Online (Sandbox Code Playgroud)

tar.xzhttps://nodejs.org/en/download/下载最新的NodeJS 文件

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/
Run Code Online (Sandbox Code Playgroud)

#.#.#你下载的版本在哪里。

使用验证安装

node -v
npm -v
Run Code Online (Sandbox Code Playgroud)


Sch*_*dde 6

这取决于您想要如何管理 Node JS/npm。

正如 Bilbo Baggins 所建议的,您可以从官方网站安装 Node JS 的最新 LTS 版本:https: //nodejs.org/en/download/

在 Ubuntu 上,如果您希望使用默认存储库来管理 Node apt,最好同时安装nodejsnpm

您正在使用的 npm 版本很可能semver在特定位置与您安装的 Node JS 版本不一致。如果只有一个版本nodejs并且只有一个版本npm,并且它们都使用默认存储库安装,那么这应该可以完美地工作。

以下是我使用主要 Ubuntu 存储库让 Node 和 npm 工作的最佳指南:

  1. sudo apt-get purge nodejs --auto-removesudo apt-get purge npm --auto-remove
  2. whereis node:删除节点的所有版本,一次一个。重复此操作,直到此命令在 后返回一个空白node:
  3. sudo apt-get install nodejs
  4. node --version: 应该返回... no such file or directory
  5. nodejs --version: 应该返回v1x.x.x。这是安装的版本apt。它可能比 Node JS 网站上提供的最新版本要新。
  6. sudo apt-get install npm
  7. npm --version:它将使用nodejs安装的apt并正常工作。