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

inx*_*xoy 210 node.js ionic-framework ionic2

当我运行"Ionic start project name"时,我总是收到此错误消息:

错误信息

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

小智 663

尝试/usr/local/lib/node_modules/npm再次删除并重新安装节点.这应该工作.

在带有自制软件的 MacOS上:

sudo rm -rf /usr/local/lib/node_modules/npm
brew reinstall node
Run Code Online (Sandbox Code Playgroud)

  • 如果您正在使用brew,那么您可以使用:`brew unistall --force node`和`brew install node` (13认同)
  • @Nico第一个命令有一个错字.更正将是"brew uninstall --force node". (13认同)
  • 为什么会这样? (9认同)
  • 执行上述命令后,现在得到 &gt;&gt; -bash: /usr/local/bin/npm: No such file or directory (4认同)
  • 在Mac OS Mojave(测试版)上为我工作 (2认同)

tac*_*ase 55

我按照之前的答案重新安装了节点.但我得到了这个错误.

警告:安装后步骤未成功完成您可以再次尝试使用 brew postinstall node

所以我运行了这个命令

sudo chown -R $(whoami):admin /usr/local/lib/node_modules/
Run Code Online (Sandbox Code Playgroud)

然后跑了

brew postinstall node
Run Code Online (Sandbox Code Playgroud)

  • 这在Mac OS Mojave上对我有用。谢谢。 (4认同)

Den*_*nae 27

我收到了类似的错误,现在让它正常工作.

首先确保您拥有最新版本

brew update
Run Code Online (Sandbox Code Playgroud)

删除以前的节点实例:

brew uninstall node
Run Code Online (Sandbox Code Playgroud)

然后重新安装最新版本:

brew install node
Run Code Online (Sandbox Code Playgroud)

然后确保它已符号链接到/ usr/local,如果它还没有.您将收到错误消息,告知您完成此步骤.

brew link --overwrite node 
Run Code Online (Sandbox Code Playgroud)

还提供了有关如何安装/升级节点的更多详细信息.

  • 例如,如果您的系统中有`yarn`,则可以使用`brew uninstall --ignore-dependencies node`. (11认同)

Geo*_*ker 18

在Mac OS X(10.12.6)上,我通过执行以下操作解决了此问题:

brew uninstall --force node
brew install node
Run Code Online (Sandbox Code Playgroud)

然后我得到一个错误抱怨节点postinstall失败,并重新运行 brew postinstall node

然后我得到一个错误:

permission denied @ rb_sysopen /usr/local/lib/node_modules/npm/bin/npx
Run Code Online (Sandbox Code Playgroud)

我解决了这个错误:

sudo chown -R $(whoami):admin /usr/local/lib/node_modules
Run Code Online (Sandbox Code Playgroud)

现在我不再犯这个错误了.


phi*_*hil 8

如果您使用的是"n"库@ https://github.com/tj/n.请执行下列操作

  echo $NODE_PATH
Run Code Online (Sandbox Code Playgroud)

如果节点路径为空,则

sudo n latest    - sudo is optional depending on your system
Run Code Online (Sandbox Code Playgroud)

使用n切换Node.js版本后,npm可能无法正常工作.

curl -0 -L https://npmjs.com/install.sh | sudo sh
echo NODE_PATH
Run Code Online (Sandbox Code Playgroud)

您现在应该看到您的节点路径.否则,它可能是别的东西


jac*_*nye 8

如前面提到的。

 sudo rm -rf /usr/local/lib/node_modules/npm
 brew uninstall --force node                
 brew install node
Run Code Online (Sandbox Code Playgroud)


fra*_*lst 6

该错误Cannot find module '../lib/utils/unsupported.js'是由require('../lib/utils/unsupported.js')in引起的./lib/node_modules/npm/bin/npm-cli.js

根据nodejs requiredocs,相对于文件搜索所需的模块,因为它以../.

因此,如果我们采用../lib/utils/unsupported.js从 开始的相对路径./lib/node_modules/npm/bin/npm-cli.js,则所需的模块必须驻留在 中./lib/node_modules/npm/lib/utils/unsupported.js。如果它不存在,我会看到两个选项:

  • 安装已损坏,在这种情况下,Vincent Ducastel对重新安装节点的回答可能有效
  • npm没有符号链接到./lib/node_modules/npm/bin/npm-cli.js. 这就是导致我设置错误的原因。如果您调用npm,它通常会发现它正在PATHenv var 中列出的目录中搜索它。例如,它可能位于./bin. 但是,npm./bin目录中应该只是指向上述./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配置的答案都应该被忽略,因为在相对搜索模块时不会考虑这些。


C W*_*ams 5

https://nodejs.org/en/

只需从官方网站下载节点,这对我有用!:)


Jer*_*ong 5

尝试了所有以上/较旧的Brew安装答案,但没有一个适用于我的笔记本电脑。

只有以下方法可以解决我的问题。

1)运行以下命令:

sudo rm -rf /usr/local/lib/node_modules/npm
brew uninstall --force node      
Run Code Online (Sandbox Code Playgroud)

2)然后,前往Node.js官方网站https://nodejs.org/en/download/current/下载用于新安装的最新软件包。

3)再次运行您的npm命令,该命令应该会出现任何错误。

此方法适用于macOS Mojave版本10.14.4