我不能在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)

当前回答

当我使用较低版本的node运行npm install时遇到了这个问题。后来当我升级到最新版本的节点并运行gulp时,它已经显示了这个错误。

为了解决这个问题,删除node_modules并重新运行npm install。然后一口气就咽下去了。

其他回答

我在这里也面临同样的问题。

如果在运行brew install yarn后发生这种情况,请尝试运行yarn global add npm和voilà -已修复!

我终于明白了!是的,您必须卸载/删除所有文件并重新安装。但是有些文件路径太长,无法在卸载过程中删除。Node中的文件路径太长,可能无法删除。您必须重命名文件路径。

卸载节点后,使用命令提示符,导航到…\Appdata\roaming\(使用错误消息中的路径)。尝试用del npm删除该文件夹。然后,如果它不允许您删除文件夹,那么在下一个错误消息中开始将文件路径中的文件夹重命名为“a”或其他短名称。您可能必须对路径上的多个文件夹执行此操作。然后你就可以删除了!然后重新安装节点,它应该工作。

只需删除你的node_modules

rm -rf node_modules

than

yarn

or

npm install

对我来说,它发生在我的项目从gulp 3升级到gulp 4的时候。 所以,当我运行“gulp watch”命令时,它抛出了同样的错误。

这可能是由于与我的全球安装的gulp版本不匹配。

因此,要么用“-g”全局标志升级gulp会有所帮助,要么我按照下面的方法进行

但是,我在我的项目中使用了“./node_modules/.bin/gulp watch”。这确保了gulp需要的所有依赖项都只取自node_modules。

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

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