Npm安装无法找到模块' semver'

时间:2015-11-23 11:55:04

标签: javascript node.js mean-stack

我无法在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)

请帮帮我

34 个答案:

答案 0 :(得分:352)

我有同样的错误。 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

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

答案 1 :(得分:50)

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

如果您在运行import org.keycloak.events.admin.AdminEvent; import org.keycloak.models.UserModel; public void handleResourceOperation(AdminEvent adminEvent, UserModel user) { MQMessage queueMessage = new MQMessage(); queueMessage.setIpAddress(adminEvent.getAuthDetails().getIpAddress()); queueMessage.setUsername(user.getUsername()); switch (adminEvent.getOperationType()) { case CREATE: LOGGER.info("OPERATION : CREATE USER"); LOGGER.info("USER Representation : " + adminEvent.getRepresentation()); String[] split = adminEvent.getRepresentation().split(","); queueMessage.setTransactionDetail("Created user " + split[0].substring(12)); sendQueueMessage(adminEvent, queueMessage); break; case DELETE: LOGGER.info("OPERATION : DELETE USER"); LOGGER.info("USER Representation : " + adminEvent.getRepresentation()); queueMessage.setTransactionDetail("User has been deleted."); sendQueueMessage(adminEvent, queueMessage); break; } 之后立即尝试运行brew install yarn并且vo - 修复了!

答案 2 :(得分:46)

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

答案 3 :(得分:44)

我昨天跑了brew install yarn之后也得到了这个。至少,在那之前一切都很好。

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

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

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

现在一切都很好。刚回到目录,运行npm install并完成了这个技巧。

答案 4 :(得分:17)

Arch Linux 上,我的诀窍是:

sudo pacman -Rs npm
sudo pacman -S npm

答案 5 :(得分:12)

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

pacman -S semver

答案 6 :(得分:6)

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

答案 7 :(得分:5)

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

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

在任何操作系统中都可以这样做。

答案 8 :(得分:5)

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

yarn global add npm

答案 9 :(得分:5)

就我而言,在macOS上,我通过安装https://nodejs.org/en/download/上的最新Node和npm版本来解决此问题

答案 10 :(得分:3)

在Windows上,再次下载Node's MSI并执行“修复”对我有效。

答案 11 :(得分:2)

在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提出

答案 12 :(得分:2)

在Ubuntu上,如果您希望使用apt通过默认存储库管理Node,则最好以这种方式安装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并正常工作。

答案 13 :(得分:2)

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

删除package-lock.json文件和node_modules文件夹,然后alter table temp1 add constraint temp1_pk primary key (id);

答案 14 :(得分:2)

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

ma​​hedi@debain:~$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh |猛击

执行命令后。关闭终端并重新打开,然后运行此命令以安装 node js 最新版本。

ma​​hedi@debain:~$ nvm install v14.15.5

现在通过输入 node -v 来检查

答案 15 :(得分:1)

这在Ubuntu(最新版本为2020年10月)上为我工作

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

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -

这获得了最新版本的节点,该节点更新了我的库并摆脱了'semver'错误。

答案 16 :(得分:1)

对于 Arch Linux

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

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

答案 17 :(得分:1)

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

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

答案 18 :(得分:1)

我遇到了同样的问题但它是由一个损坏的package-lock.json文件造成的。

删除package-lock.json并再次运行npm install为我修复了它。

答案 19 :(得分: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了。

答案 20 :(得分:0)

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

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

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

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

答案 21 :(得分:0)

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

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

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

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

答案 22 :(得分:0)

对于Mac用户,我尝试安装一堆新的节点版本并卸载其他版本。那没有解决。您必须先彻底清除所有安装。请遵循以下说明... How do I completely uninstall Node.js, and reinstall from beginning (Mac OS X)

然后下载最新版本的节点。

答案 23 :(得分:0)

只需确保已安装semvernpm install -g semver

答案 24 :(得分:0)

运行任何'ng'命令(ng --version)后,我收到一条错误消息,指出权限被拒绝。我搜索了一段时间,尝试清除npm缓存npm cache verify,卸载全局角度cli(npm uninstall -g @angular/cli),然后重新安装Angular / cli(npm install -g @angular/cli)等。但这会给出错误提示它已经安装了。但是这里的node_modules文件夹没有任何角度文件夹。.即使重新启动节点,也重新安装了节点。

答案:最终,我发现这里C:\Users\JaGoodwin\AppData\Roaming\npm\中的ng.cmd和ng.ps1文件仍然存在(在npm文件夹中)..尽管我做了npm uninstall -g @angular/cli。这些文件导致ng(angular / cli)认为它仍已安装。我删除了那些文件,然后npm install -g @angular/cli@8.3.29(我需要的版本),然后删除了我的项目node_modules,然后运行了npm install,现在可以使用ng serve来运行我的角度项目了。

enter image description here

C:\Users\JaGoodwin\AppData\Roaming\npm\

通过在Windows搜索栏中搜索%APPDATA%进行查找。

答案 25 :(得分:0)

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

然后安装节点和npm

答案 26 :(得分:0)

重新开始。

brew uninstall --force node
brew install node

答案 27 :(得分:0)

在我的MacOs Sierra 10.12.6上安装brew后,我遇到了同样的麻烦。 (并且第一次安装尝试在brew更新后自动发出消息“Homebrew必须在Ruby 2.3下运行!你正在运行2.0.0。(RuntimeError)”。所以我重新运行它。)

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

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

我认为可能会导致在sudo下安装节点的麻烦。

答案 28 :(得分:0)

只需删除您的node_modules

$ sudo apt remove gradle
$ sudo apt-get install gradle
$ gradle wrapper

rm -rf node_modules

yarn

答案 29 :(得分:0)

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

答案 30 :(得分:0)

在更高版本的cli上运行项目时,我遇到了这个问题。要解决此问题,您只需注释掉@ angular-devkit / build-angular模块,然后再次必须通过

重新安装它
  

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

答案 31 :(得分:-1)

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

在这种情况下,您需要通过semver手动安装npm install -g semver

答案 32 :(得分:-2)

我遇到了同样的问题,并通过升级Node版本来解决了该问题

答案 33 :(得分:-2)

我遇到了同样的问题,但使用以下命令解决了这个问题。

npm install semver