当我运行"离子启动项目名称"时,我总是收到此错误消息:
错误信息
Running command - failed![ERROR] An error occurred while running npm install (exit code 1):
module.js:471
throw err;
^
Error: Cannot find module '../lib/utils/unsupported.js'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at /usr/local/lib/node_modules/npm/bin/npm-cli.js:19:21
at Object.<anonymous> (/usr/local/lib/node_modules/npm/bin/npm-cli.js:79:3)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
尝试删除/usr/local/lib/node_modules/npm
并重新安装节点。这应该有效。
在带有自制软件的 MacOS 上:
sudo rm -rf /usr/local/lib/node_modules/npm
brew reinstall node
我按照之前的答案重新安装了节点。但是我得到了这个错误。
警告:安装后步骤未成功完成 使用
brew postinstall node
重试
所以我运行了这个命令
sudo chown -R $(whoami):admin /usr/local/lib/node_modules/
然后跑了
brew postinstall node
我收到了类似的错误,现在它可以工作了。
首先确保您拥有最新版本
brew update
删除以前的节点实例:
brew uninstall node
然后重新安装最新版本:
brew install node
然后确保它已符号链接到/usr/local(如果尚未)。您将收到一个错误,要求您知道要完成此步骤。
brew link --overwrite node
还提供了有关如何安装/升级节点的更多详细信息。
在 Mac OS X (10.12.6) 上,我通过执行以下操作解决了此问题:
brew uninstall --force node
brew install node
然后我收到一个错误,抱怨节点安装失败,并重新运行brew postinstall node
然后我得到一个错误:
permission denied @ rb_sysopen /usr/local/lib/node_modules/npm/bin/npx
我通过以下方式解决了该错误:
sudo chown -R $(whoami):admin /usr/local/lib/node_modules
现在我不再收到此错误了。
如果您使用的是"n"库@https://github.com/tj/n。执行以下操作
echo $NODE_PATH
如果节点路径为空,则
sudo n latest - sudo is optional depending on your system
使用 n 切换 Node.js 版本后,npm 可能无法正常工作。
curl -0 -L https://npmjs.com/install.sh | sudo sh
echo NODE_PATH
您现在应该会看到您的节点路径。否则,它可能是其他东西
错误Cannot find module '../lib/utils/unsupported.js'
是由./lib/node_modules/npm/bin/npm-cli.js
中的require('../lib/utils/unsupported.js')
引起的。
根据 nodejsrequire
文档,所需的模块是相对于文件搜索的,因为它以../
开头。
因此,如果我们从./lib/node_modules/npm/bin/npm-cli.js
开始采用相对路径../lib/utils/unsupported.js
,所需的模块必须驻留在./lib/node_modules/npm/lib/utils/unsupported.js
中。如果不存在,我看到两个选项:
- 安装已损坏,在这种情况下,文森特·杜卡斯特尔重新安装节点的答案可能会起作用
npm
不是指向./lib/node_modules/npm/bin/npm-cli.js
的符号链接。这就是导致我的设置错误的原因。如果你调用npm
,它通常会发现它正在PATH
env var 中列出的目录中搜索它。例如,它可能位于./bin
.但是,./bin
目录中的npm
应仅是指向上述./lib/node_modules/npm/bin/npm-cli.js
的符号链接。如果它不是符号链接但直接包含代码,则在安装过程中的某个地方,符号链接被它链接到的文件所取代。在这种情况下,重新创建符号链接就足够了:cd ./bin; rm npm; ln -s ../lib/node_modules/npm/bin/npm-cli.js npm
(更新:命令已修复,谢谢@massimo)
应忽略所有建议检查NODE_PATH
或npmrc
配置的答案,因为在相对搜索模块时不会考虑这些答案。
如前所述。
sudo rm -rf /usr/local/lib/node_modules/npm
brew uninstall --force node
brew install node
尝试了所有以上/较旧的brew安装答案,没有一个适用于我的笔记本电脑。
只有以下方法可以解决我的问题。
1) 运行以下命令:
sudo rm -rf /usr/local/lib/node_modules/npm
brew uninstall --force node
2)然后,进入Node.js官方网站 https://nodejs.org/en/download/current/下载最新软件包以进行新安装。
3) 再次运行 npm 命令,该命令应该不再有任何错误。
此方法适用于macOS Mojave 版本 10.14.4。
https://nodejs.org/en/
只需从官方网站下载节点,这对我有用! :)
在 Windows 上:
删除 ~/AppData/Roaming 中的 npm 文件夹
是的,您应该重新安装节点:
sudo rm -rf /usr/local/lib/node_modules/npm
brew uninstall --force node
brew install node
只需遵循三个步骤;
-
强制清除
npm
缓存:npm cache clean -f
-
使用
npm
全局安装n
软件包:npm install -g n
-
从以下三个选项之一进行安装:
一个。
sudo n stable (get the stable version)
二.
sudo n latest (get the latest version of node)
三.
sudo n x.x.x (get the specific version of node)
我通过混合安装/更新方法得到此错误:通过从网站下载软件包安装节点,后来我使用 brew 进行更新。
我通过卸载brew版本修复了:
brew 卸载 --忽略依赖关系
节点
然后我回到节点网站并通过包管理器下载并安装:https://nodejs.org/en/download/出于某种原因,尝试通过brew重新安装没有任何效果。
我遇到了类似的问题,当我尝试通过npm test
执行 Mocha 时,找不到整个../lib/utils
目录。我在这里尝试了上述解决方案,但没有运气。最终,我最终卸载并重新安装了 Mocha 包,该包是我正在工作的npm 项目中的依赖项,之后它就工作了。因此,如果有人在安装作为依赖项的 npm 包时遇到此问题,请尝试卸载并重新安装该包(如果尚未安装)!
我通过运行以下命令解决了这个问题
nvm install node --reinstall-packages-from=node
在我的情况下,它丢失了$NODE_PATH:
NODE="/home/ubuntu/local/node" #here your user account after home
NODE_PATH="/usr/local/lib/node_modules"
PATH="$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:$NODE/bin:$NODE/lib/node_modules"
只检查echo $NODE_PATH
空意味着它未设置。建议将它们添加到 .bashrc。
在 Fedora 27 上,我通过这样做解决了这个问题:
sudo rm -f /usr/local/lib/node_modules/npm
sudo dnf reinstall nodejs
<</div> div class="one_answers">这是一篇关于从计算机操作系统中删除节点的有用视频和博客文章。这是一种不同的删除方法,具体取决于您首先安装节点的方式(brew 与从 https://nodejs.org/en/下载的二进制文件
如果您使用自制软件安装了节点,那么brew卸载节点将起作用。通过在终端中运行
node -v
命令进行验证。否则,如果您已经从nodeJS的网站安装了二进制文件,则必须在终端中运行以下命令:
sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*}
。同样,通过运行 node -v 命令进行验证。在这两种情况下,成功删除节点应该会导致 bash 无法识别节点是什么,如果它被完全删除
在我的macOS(10.13.3)中,重新安装节点版本管理器后解决了它。
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
source ~/.bashrc
当npm/lib
文件夹由于某种原因被清空时,可能会发生这种情况(也可能是由于上次使用中的权限问题而发生)。
重新安装节点可以解决问题(如此处的其他答案所述),但我建议使用一个名为nvm
(节点版本管理器)的出色工具,它能够管理多个版本的node
和npm
- 这在具有多个项目需要不同版本的节点的开发机器上最有用。
安装 nvm 时,此消息将消失,您将拥有最新版本的node
和npm
。
要查看 nvm 中当前安装的节点版本列表,只需运行:
nvm list
要安装和使用新的节点版本,请运行:
nvm install <node_version>
例如,要安装最新版本的节点 10.x,请运行:
nvm install 10
要切换到当前安装的版本,请运行:
nvm use <node_version>
要切换到系统的原始节点版本,只需运行:
nvm use system
希望这有帮助。
祝你好运!
我通过删除node_modules然后重新安装节点稳定版本来解决此问题。
您可以运行此命令,它将自动删除以前版本的 npm 并安装新版本以获取详细信息 https://github.com/npm/cli
curl -qL https://www.npmjs.com/install.sh | sh