$ npm install
internal/modules/cjs/loader.js:1023
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:1020:15)
at Function.Module._load (internal/modules/cjs/loader.js:890:27)
at Module.require (internal/modules/cjs/loader.js:1080:19)
at require (internal/modules/cjs/helpers.js:72:18)
at Object.<anonymous> (/usr/share/npm/lib/utils/unsupported.js:2:14)
at Module._compile (internal/modules/cjs/loader.js:1176:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1196:10)
at Module.load (internal/modules/cjs/loader.js:1040:32)
at Function.Module._load (internal/modules/cjs/loader.js:929:14)
at Module.require (internal/modules/cjs/loader.js:1080:19) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'/usr/share/npm/lib/utils/unsupported.js',
'/usr/share/npm/bin/npm-cli.js'
]
}
答案1
在 Ubuntu 上,如果您宁愿使用 通过默认存储库管理 Node apt
,则最好通过这种方式同时安装nodejs
和。npm
您使用的 npm 版本很可能semver
在特定位置需要与您安装的 Node JS 版本不一致。如果只有一个版本的nodejs
和npm
,并且它们都使用默认存储库安装,那么这应该可以完美运行。
以下是使用主 Ubuntu 存储库使 Node 和 npm 运行的最佳指导:
sudo apt-get purge nodejs --auto-remove
和sudo apt-get purge npm --auto-remove
whereis node
:一次删除一个节点的所有版本。重复此操作,直到此命令在 后返回空白node:
。sudo apt-get install nodejs
node --version
:应该返回... no such file or directory
nodejs --version
: 应返回v1x.x.x
。这是 安装的版本apt
。它可能比 Node JS 网站上提供的最新版本要新。sudo apt-get install npm
npm --version
:它将使用nodejs
已安装的apt
并正常工作。
答案2
你可能没有 semver 模块。Ubuntu
可能正在使用一些旧的 nodejs 版本,并且没有它。
您可以检查运行以下命令:Ubuntu nodejs 版本:nodejs -v
您安装的版本:node -v
您必须确保使用的是已安装的版本。
因为它可能是较新的版本,已包含 semver 包。
就我个人而言,我安装nvm
然后运行:(
nvm install node
应该安装最新版本)
然后使用:nvm list
或nvm ls
查看可用的版本。
如果你没有使用刚刚安装的最新版本,请运行:
nvm use <version>
就我而言,截至撰写本文时,我的版本是 19.8.0,
因此我会使用nvm use 19.8.0
然后尝试运行 npm 以及之前不起作用的任何命令。
您还可以使用此命令设置节点默认版本:
nvm alias default 19.8.0
如果将来出现任何问题,请再次检查您所使用的版本nvm ls
。