Npm安装找不到模块'semver'

use*_*562 175 javascript node.js mean-stack

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

请帮我

art*_*its 367

我有同样的错误.npm uninstall npm -g,rm -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

希望这能帮助那些遇到类似问题的人.

  • 如果已经安装了Yarn,那么`brew uninstall --ignore-dependencies node`对我来说很有用,其中`brew uninstall --force node`没有. (15认同)
  • 盲目粘贴命令是我的错,但是`sudo rm -rf/usr/local/lib/node_modules`导致我丢失了我使用的全局模块,如gulp和selenium服务器.**厌倦了这个** (12认同)
  • 使用`brew uninstall --force node`删除所有版本 (7认同)
  • 在两台运行El Capitan的不同机器上使用它,在两种情况下均可使用. (3认同)
  • 再次安装npm.`curl -0 -L https://npmjs.org/install.sh | 删除npm文件夹后sudo sh` (3认同)
  • 血腥有用!谢谢阿奇! (2认同)

Ash*_*oor 68

我在这里遇到同样的问题.

如果出现这种情况,请在brew install yarn运行后立即尝试运行yarn global add npm并vo修复!

  • 这个解决方案对我来说非常有用,并且比这里的替代方案简单得多。我认为如果安装在升级/安装期间出现权限/访问错误,yarn 可能会破坏 npm。 (2认同)

小智 49

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

  • 在Windows上只需_repair_无需重新安装 (7认同)
  • @MotKohn Repaire 什么?一条腿?骨头?一辆车?“修复”什么?! (2认同)
  • @samayo在安装Windows的Windows上,有修复选项。抱歉,这是上下文注释。 (2认同)
  • 这种方法对我的64位Windows 8.1 Enterprise笔记本电脑也很有效。我必须同时删除“ npm”和“ npm-cache”文件夹,然后再进行卸载和新节点安装。 (2认同)

raf*_*nes 45

brew install yarn昨天跑完后我也有这个.至少,在那之前一切都很好.

我跑了rm -rf node_modules并试图重新安装,但没有npm命令正在运行.

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

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

现在一切都很好.刚回到目录,跑了npm install,它就完成了.

  • 在'brew brew yarn'之后我也发生了这种情况 (3认同)

小智 37

我遇到了同样的问题,我解决它的方法是执行

PATH="$PATH"
Run Code Online (Sandbox Code Playgroud)

在终端中,问题是终端保留了nodejs的旧路径,而不是使用新路径。


sch*_*dde 20

在Ubuntu上,如果你宁愿通过使用默认的仓库管理节点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并正常工作。

  • 这对我了解问题出在哪里很有用。我没有卸载并重新安装默认的 Ubuntu 版本,而是卸载了 Ubuntu 版本并通过节点版本管理器 (nvm) 安装了所有内容。 (3认同)
  • 我发现这个答案对于 aws 中的 Ubuntu 20.xx 很有用...... (2认同)
  • 第 1 步成功了,太棒了。乌班图20.04 (2认同)
  • 在 ubuntu 20.10 上的第 3 步遇到问题 - 一旦我执行第 2 步,节点就开始存在 (2认同)
  • 这个答案对我帮助很大。对于使用 Ubuntu 20.04 虚拟机的任何人,我使用 nvm 成功安装了与 npm (v 7) 一起安装的最新节点 (v 16)。https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-up-node-on-ec2-instance.html (2认同)

Tel*_*per 18

Arch Linux上,我的诀窍是:

sudo pacman -Rs npm
sudo pacman -S npm
Run Code Online (Sandbox Code Playgroud)

  • 我不得不使用 `sudo pacman -Rdd` 来删除忽略依赖项,但它并没有为我解决问题。在 Mathias Braun 的回答中从 arch 软件包安装 semver 确实如此。 (2认同)

Sup*_*nka 18

如果您在 Linux 服务器中,请退出服务器并重新 ssh

  • 如果您在本地终端会话上(在 Ubuntu 20 上测试),这也适用!一年后,npm仍然有这个问题...... (19认同)
  • 使用 n 更改节点版本(在 WSL 中)后出现此问题,这个答案应该得到更高的评价;) (7认同)
  • 还在 wsl2 上的 ubuntu 上为我工作 (4认同)
  • 这就像一个魅力,但如果它能解释为什么它有效,答案会更有用。 (4认同)
  • 呵呵 - 我认为这是一个愚蠢的建议,但没有什么可失去的,我开始了一个新的外壳,它的工作原理如广告所示。谢谢! (3认同)

Mat*_*aun 14

刚刚在Arch Linux 4.13.3上遇到过这个问题,我只需重新安装就解决了这个问题semver:

pacman -S semver
Run Code Online (Sandbox Code Playgroud)


Moh*_*ouk 13

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)

然后安装node和npm

原答案


Mah*_*joy 11

只需卸载 Node js,然后使用 nvm 重新安装即可。你的问题将会得到解决。我是 Debian 10 用户。

要安装,请按照最新 nvm 安装脚本nvm中的说明进行操作或运行以下(可能已过时)命令:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
Run Code Online (Sandbox Code Playgroud)

after executing the command. close your terminal and reopen then run this command to install node js latest version.

nvm install --lts
Run Code Online (Sandbox Code Playgroud)

now check the node version by running node -v


Jav*_*ome 7

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

  • npm 不工作,所以你不能通过 npm 安装 semver。最好的解决方案是使用yarn安装npm或缺少的包 (12认同)

zee*_*wan 7

In my case on macOS(10.13.6), when I executed the following command

npm install -g react-native-cli
Run Code Online (Sandbox Code Playgroud)

I got this error

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

The error got resolved after executing the command

yarn global add npm
Run Code Online (Sandbox Code Playgroud)

proposed by @Ashoor


Shu*_*wal 6

实际上,它正在参考以前存储的模块.

解决方案:删除nodejs安装目录中的npm-cache/npm文件夹.在Windows中,它位于C:/ User/Username/Appdata/Roaming/npm(或npm_cache)中.并尝试再次安装.任何操作系统都可以做同样的事情.

  • 就是这样。我卸载了节点。然后从“/Appdata/Roaming”中删除“npm”和“npm_cache”。然后再次安装节点。看来缓存应该归咎于那里。 (2认同)

the*_*ker 6

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

yarn global add npm
Run Code Online (Sandbox Code Playgroud)


小智 6

我遇到了同样的错误,我解决了它。

然后删除package-lock.json文件和node_modules文件夹npm install


Geo*_*fer 6

对于拱Linux

sudo pacman -Rsc -n nodejs
sudo pacman -Sy nodejs
sudo pacman -Sy npm
Run Code Online (Sandbox Code Playgroud)

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


Sor*_*mar 5

在 Windows 上,再次下载Node 的 MSI并进行“修复”对我有用。


Wir*_*lue 5

我遇到了同样的问题,但它是由损坏的package-lock.json文件引起的。

删除package-lock.jsonnpm install再次运行为我解决了这个问题。


Sno*_*cat 5

这在 Ubuntu 上对我有用(最新版本日期为 2020 年 10 月)

我必须首先从 bash 源获取代码:

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
Run Code Online (Sandbox Code Playgroud)

这得到了最新版本的节点,它更新了我的库并消除了“semver”错误。


Rod*_*tou 0

只需删除 /node_modules 文件夹并重试。;)

您可以使用npm rm它来删除它。

您还可以在 GitHub 上查看此问题。要更具体地了解 unnistal,请尝试遵循以下步骤

卸载

看到你离开我很难过。

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

sudo make uninstall 更严重的卸载

通常,上述说明就足够了。这将删除 npm,但会留下您安装的任何内容。

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

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

npm explore npm -g -- sh script/clean-old.sh npm 使用两个配置文件,一个用于每用户配置,另一个用于全局(每个用户)配置。您可以通过执行以下操作来查看它们:

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