NPM:找不到模块 'node-gyp/bin/node-gyp'

NPM : Cannot find module 'node-gyp/bin/node-gyp'

我在 ubuntu 14.04node 8.0.0[= 下使用 NPM 29=].

我已经将 npm5.2.0 升级到 5.6.0

但在那之后所有 npm 命令都失败了,表明问题:

node-gyp/bin/node-gyp

完整日志如下:

npm ERR! code MODULE_NOT_FOUND
npm ERR! Cannot find module 'node-gyp/bin/node-gyp'

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/khalidvm/.npm/_logs/2018-01-12T15_02_35_338Z-debug.log
khalidvm@ubuntu:~/Desktop$ gedit /home/khalidvm/.npm/_logs/2018-01-12T15_02_35_338Z-debug.log
^C
khalidvm@ubuntu:~/Desktop$ sudo npm uninstall npm -g
npm ERR! code MODULE_NOT_FOUND
npm ERR! Cannot find module 'node-gyp/bin/node-gyp'

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/khalidvm/.npm/_logs/2018-01-12T15_05_25_322Z-debug.log

恐怕我无法使用 npm ,即使卸载它也会抛出同样的错误。

如果您 运行 在 Ubuntu 14.04 上默认安装节点,则该软件包应该已过时(我相信它是 0.xx 版本)并且是源代码你的问题。您可以通过查看此处来解决此问题:https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions

使用 up-to-date 节点分布时,我遇到了与 node-gyp 相同的问题。原来我在/usr/local下安装了ghost。那是我的 node 可执行文件的重影。

被运行删除后:

  sudo rm -rf /usr/local/bin/node-gyp 
  sudo rm -rf /usr/local/bin/npm
  sudo rm -rf /usr/local/bin/npx
  sudo rm -rf /usr/local/lib/node_modules/

并清理我的主目录中的节点文件,以防万一:

  rm -rf ~/.node-gyp/
  rm -rf ~/.npm/

我卸载了当前节点安装,并重新安装:

sudo apt-get remove --purge nodejs
sudo apt-get install nodejs

对我(Arch Linux)来说,通过 pacman 安装 node-gyp 就足够了:

sudo pacman -Sy node-gyp

对于 Arch,请参阅:https://www.archlinux.org/packages/community/any/node-gyp/

sudo apt-get install node-gyp

Ubuntu 参见:https://packages.ubuntu.com/de/trusty/web/node-gyp

同样在 Arch Linux 上,对我来说,它在删除 nodejs 和依赖项并重新安装 node 和 npm 时有效。

sudo pacman -Rcns nodejs
sudo pacman -S nodejs
sudo pacman -S npm

额外的好东西here