Npm安装找不到模块'semver'


196

我不能npm install在NodeJS中使用命令提示符。我在运行时遇到这些错误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)

4
我遇到了同样的问题或者,您可以使用yarn代替npm
WojciechMaślanka16年

1
您是否正在使用yarn安装package.json?
anandharshan

1
只需重新安装npm
Nuno Ferro,

Answers:


401

我有同样的错误。npm uninstall npm -grm -rf node_modules对我没有帮助,因为当我尝试时,我得到了Error: Cannot find module 'semver'。但是我通过以下步骤解决了我的问题(这将删除您可能正在使用的其他全局模块):

  • sudo rm -rf /usr/local/lib/node_modules
  • sudo rm -rf ~/.npm
  • brew uninstall --force node
  • brew install node

希望这对遇到类似问题的人有所帮助。


3
在运行El Capitan的两台不同机器上使用了此功能,在两种情况下均能正常工作。
Kamikaze Rusher

7
使用brew uninstall --force node删除所有版本
deleze

5
只需再次安装npm。curl -0 -L https://npmjs.org/install.sh | sudo sh删除npm文件夹后
Baryon Lee

17
如果已经安装了Yarn,则brew uninstall --ignore-dependencies node可以在brew uninstall --force node没有安装的情况下为我工作。
Maxime Lafarie

13
这是我盲目粘贴命令的错,但是却sudo rm -rf /usr/local/lib/node_modules导致我丢失了诸如gulp和selenium服务器之类的全局模块。对此感到厌倦
AmmarCSE

84

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

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


2
该解决方案对我来说非常有效,并且比这里的替代方案简单得多。我认为,如果安装在升级/安装过程中出现权限/访问错误,yarn可能会破坏npm。
Slbox

52

在MS Windows上,解决方案是删除%APPDATA%\npm并重新安装node


我希望我可以为Windows加倍投票。有一个陷阱:默认情况下,AppData目录是隐藏的,因此我认为它实际上并未安装在此位置。
林戈

7
在Windows上,只需修复,无需重新安装
MotKohn '17

2
@MotKohn Repaire什么?一条腿?骨头?一辆车?“ repaire”是什么?!
samayo

2
@samayo在安装Windows的Windows中,有修复选项。抱歉,这是上下文注释。
MotKohn

2
这种方法对我的64位Windows 8.1 Enterprise笔记本电脑也很有效。我必须同时删除“ npm”和“ npm-cache”文件夹,然后再进行卸载和新节点安装。
艾迪(Eddie)

46

brew install yarn昨天跑步后,我也有这个。至少到那时为止一切都很好。

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

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

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

现在一切都很好。刚回到目录,运行npm install就可以了。


npm install为我做了。我一个接一个地安装了所有依赖项,但npm install一次都安装了。谢谢。
tazboy

3
我也是在brew install yarn
Walter Martin Vargas-Pena

1
从官方osx安装程序简单地重新安装node.js很有帮助。谢谢!
罗马,

之后也发生在我身上brew install yarn!! 什么东西,纱线
movac

23

Arch Linux上,我的诀窍是:

sudo pacman -Rs npm
sudo pacman -S npm

1
我不得不使用sudo pacman -Rdd删除忽略依赖项,但它并没有为我解决问题。从Mathias Braun的答案中的arch软件包中安装semver即可。
Pierre-Alexis Ciavaldini


8

实际上,它是参考以前存储的模块。

解决方案:删除nodejs安装目录中的npm-cache / npm文件夹。在Windows中,它位于C:/ User / Username / Appdata / Roaming / npm(或npm_cache)中。并尝试再次安装。

在任何操作系统中都要做相同的事情。


而已。我卸载了节点。然后删除都npmnpm_cache/Appdata/Roaming。然后再次安装节点。似乎缓存应该归咎于那里。
萨利乌斯19/12/23

7

在macOS(10.13.6)上,执行以下命令时

npm install -g react-native-cli

我得到这个错误

Error: Cannot find module 'semver'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
    at Function.Module._load (internal/modules/cjs/loader.js:562:25)
    at Module.require (internal/modules/cjs/loader.js:690:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/unsupported.js:2:14)
    at Module._compile (internal/modules/cjs/loader.js:776:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)

执行命令后错误已解决

yarn global add npm

由@Ashoor提议


5

对我来说,这是在全球安装纱线之后发生的。要解决此问题,请使用yarn和done安装npm。

yarn global add npm


2

我有同样的问题,但这是由package-lock.json文件损坏引起的。

删除package-lock.jsonnpm install再次运行对我来说很固定。


2

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

要解决,删除了node_modules并重新运行npm install。然后gulp跑得很好。


1

只需删除/ node_modules文件夹,然后重试。;)

您可以使用npm rm将其删除。

您也可以在GitHub上检查此问题。要更具体地讲解内容,请尝试遵循以下步骤

解除安装

所以遗憾地看到你去。

sudo npm uninstall npm -g或者,如果失败,

sudo使卸载更加严重

通常,以上说明就足够了。这将删除npm,但保留所有已安装的内容。

如果要删除已安装的所有软件包,则可以使用npm ls命令找到它们,然后使用npm rm删除它们。

要删除npm 0.x留下的碎片,可以使用随附的clean-old.sh脚本文件。您可以像这样方便地运行它:

npm Explore npm -g-sh脚本/clean-old.sh npm使用两个配置文件,一个用于每个用户的配置,另一个用于全局(每个用户)的配置。您可以通过以下方式查看它们:

npm config get userconfig#默认为〜/ .npmrc npm config get globalconfig#默认为/ usr / local / etc / npmrc卸载npm不会默认删除配置文件。如果您希望它们消失,则必须手动将其删除。请注意,这意味着以后的npm安装将不会记住您选择的设置。


更新了我的答案。现在就试试。如果不起作用,请为我测试。将package.json复制到另一个文件夹,然后尝试使用npm install。
Rodmentou

1
您可以粘贴package.json吗?
Rodmentou

{“名称”:“工作区”,“版本”:“ 0.0.0”,“专用”:true,“脚本”:{“开始”:“节点./bin/www”},“依赖项”:{ body-parser”:“〜1.13.2”,“ bson”:“ ^ 0.2.22”,“ cookie-parser”:“〜1.3.5”,“ debug”:“〜2.2.0”,“ express” :“〜4.13.1”,“ hbs”:“〜3.1.0”,“ monk”:“ ^ 1.0.1”,“ morgan”:“〜1.6.1”,“ serve-favicon”:“〜2.3 .0“},” engines“:{” node“:” 4.2.2“}}
user2447562

您是否尝试在另一个文件夹中将package.json运行npm install?
Rodmentou

我必须卸载到node.js,然后再安装node.js。...我必须使用mean创建示例应用程序。那时候我必须安装npm intall命令,但是我遇到了同样的错误...请给一些解决方案我....
user2447562

1

我终于想通了!是的,您必须卸载/删除所有文件并重新安装。但是在卸载过程中,某些文件路径太长而无法删除。节点中的文件路径太长,可能无法删除它们。您必须重命名文件路径。

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



0

就我而言,只需重新运行即可brew install yarn解决问题。


0

brew在MacOs Sierra 10.12.6上安装纱线后,我也遇到了同样的麻烦。(而且第一次尝试安装是在brew更新自我之后,出现消息“ Homebrew必须在Ruby 2.3下运行!您正在运行2.0.0。(RuntimeError)。”因此,我重新运行它。)

所以我用n manager重新安装npm。

  • 通过带有空参数的“ n”命令切换到另一个节点版本(对于我来说是8.0)
  • 或通过“ n xxx”安装新版本,其中xxx为节点版本号(我需要6.9.1)
  • 通过“ n rm xxx”删除工作版本,其中xxx为节点版本号。如果需要使用sudo
  • 通过“ n xxx”安装工作版本,其中xxx为节点版本号。如果需要使用sudo
  • 切换到节点的工作版本。(请参阅第一步以供参考)

我认为麻烦可能是由于在情况下将节点安装在sudo下。



0

我在AWS Linux上安装时遇到了同样的问题。我必须用安装sudo。因此,为了解决这个问题,我遵循了本文的步骤3(确保获取最新版本的node)

https://www.hostingadvice.com/how-to/update-node-js-latest-version/

wget https://nodejs.org/dist/vx.x.x/node-vx.x.x-linux-x64.tar.xz
tar -C /home/aUser/node --strip-components 1 -xJf node-vx.x.x-linux.x64.tar.xz

但是将其安装到用户的主目录/home/aUser/node。然后将该路径添加到我的PATH中。

export PATH=/home/aUser/node/bin:$PATH

在那之后,我能够做到npm install没有任何问题。


0

在更高版本的cli上运行项目时,我遇到了这个问题。要解决此问题,您可以简单地注释掉@ angular-devkit / build-angular模块,然后再次通过重新安装它

npm install @ angular-devkit / build-angular --save


0

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


1
npm无法正常工作,因此您无法通过npm安装semver。最好的解决方案是使用yarn安装npm或缺少软件包
NFpeter

@NFpeter我遇到的问题与问题中所述的问题完全相同,并以这种方式解决,所以npm确实起作用(至少在我的情况下)。
Javarome

0

对我而言,这是在我的项目中从gulp 3升级到gulp 4时发生的。因此,当我运行“ gulp watch”命令时,它抛出了同样的错误。

与我全局安装的gulp相比,这可能是由于版本不匹配所致。

因此,使用“ -g”全局标志升级gulp会有所帮助,否则我将在下面进行操作

但是,我在项目中使用了“ ./node_modules/.bin/gulp监视”。这样可以确保gulp所需的所有依赖项仅来自node_modules。


0

如DeveloperReference.com上的onymous(?)所述,以下步骤为我解决了在运行npm -install时“找不到模块'semver'”的问题:

*“我按照以下步骤操作,解决了我卸载Node.js的问题

  1. 删除以下文件夹的内容
    • C:\ Users \ {用户名} \ AppData \ Roaming \ npm-cache
    • C:\ Users \ {用户名\ \ AppData \ Roaming \ npm
  2. C:\ Program Files文件\随后的NodeJS再次从安装节点https://nodejs.org/en/ “*

https://html.developreference.com/article/12253101/Cannot+find+module+%27semver%27+When+installing+Npm


-1

如果有,只需检查您的预安装脚本。有时为了限制的版本nodenpm需要运行一个项目。

如果是这种情况,您需要semver通过以下方式手动安装npm install -g semver


-2

我遇到了同样的问题,并通过升级Node版本修复了该问题

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.