错误:使用 Ionic 时找不到模块'../lib/utils/unsupported.js'



当我运行"离子启动项目名称"时,我总是收到此错误消息:

错误信息

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,它通常会发现它正在PATHenv 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_PATHnpmrc配置的答案,因为在相对搜索模块时不会考虑这些答案。

如前所述。

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

只需遵循三个步骤;

  1. 强制清除npm缓存:

    npm cache clean -f

  2. 使用npm全局安装n软件包:

    npm install -g n

  3. 从以下三个选项之一进行安装:

    一个。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(节点版本管理器)的出色工具,它能够管理多个版本的nodenpm- 这在具有多个项目需要不同版本的节点的开发机器上最有用。

安装 nvm 时,此消息将消失,您将拥有最新版本的nodenpm

要查看 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

相关内容

  • 没有找到相关文章