我不能在NodeJS中使用命令提示符使用npm install。我在运行npm install时得到这些错误:

module.js:339
    throw err;
    ^
Error: Cannot find module 'semver'
    at Function.Module._resolveFilename (module.js:337:15)
    at Function.Module._load (module.js:287:25)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at Object.<anonymous> (C:\Users\admin\AppData\Roaming\npm\node_modules\npm\l
ib\config\defaults.js:6:14)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Module.require (module.js:366:17)

当前回答

对于arch linux

sudo pacman -Rsc -n nodejs
sudo pacman -Sy nodejs
sudo pacman -Sy npm

在这里找到:https://github.com/npm/npm/issues/15558

其他回答

只要确保semver已经安装:npm install -g semver

我也有这个,在昨天运行brew安装纱线后。至少,在那之前一切都很好。

我运行rm -rf node_modules并尝试重新安装,但没有npm命令工作。

最后,我采取了相当简单的步骤,通过Mac OS X的官方Node安装程序重新安装Node。

https://nodejs.org/en/download/

现在一切都好了。回到目录,运行npm install,它就完成了。

这个问题通常发生在node js和npm版本不兼容的时候。 在Ubuntu(我的版本是20)中修复这个问题

卸载node js和npm。 Apt移除NPM Apt删除nodejs 哪个节点(它将返回节点js文件路径) 删除节点目录 安装NVM 安装 安装节点 NVM安装,例如NVM install 8.16 上面的命令本身会安装node js和它兼容的NPM。

在WSL(所以,~Ubuntu)上,我通过apt安装了nodejs和npm,然后使用n更新Node后,我遇到了这个问题。

我可以通过完全删除apt的npm安装来解决这个问题:sudo apt purge npm。

在brew在我的MacOs Sierra 10.12.6上安装纱线后,我也遇到了同样的麻烦。(并且在brew更新自我后第一次尝试安装,并提示“Homebrew必须在Ruby 2.3下运行!”您正在运行2.0.0。(RuntimeError)”。所以我重新运行了一遍。)

所以我使用n管理器重新安装npm。

通过参数为空的“n”命令切换到另一个节点版本(在我的例子中是8.0) 或者通过“n x.x.x”安装new,其中x.x.x为节点版本号(我需要6.9.1) 删除工作版本号为“n rm x.x.x”,其中x.x.x为节点版本号。如果需要,请使用sudo 通过“n x.x.x”安装工作版本号,其中x.x.x表示节点版本号。如果需要,请使用sudo 切换到节点的工作版本。(参考第一步)

我想问题可能是在sudo下安装的节点。