当我运行“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)

当前回答

我也遇到过类似的问题。当我尝试通过npm test执行Mocha时,无法找到/lib/utils目录。我尝试了这里提到的解决方案,但没有成功。最终,我卸载并重新安装了Mocha包,它是我工作的npm项目中的一个依赖项,在那之后它就工作了。因此,如果有人在将npm包作为依赖项安装时遇到了这个问题,请尝试卸载并重新安装该包(如果您还没有安装过)!

其他回答

我收到了类似的错误,现在有它的工作。

首先确保你有最新的版本

brew update

删除之前的node实例:

brew uninstall node

然后重新安装最新版本:

brew install node

然后确保它被符号链接到/usr/local(如果还没有)。您将得到一个错误,让您知道要完成这一步。

brew link --overwrite node 

关于如何安装/升级节点的更多详细信息也可用。

如果你正在使用“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

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

尝试了以上所有/旧的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 Version 10.14.4。

我通过混合安装/更新方法得到了这个错误:通过从网站下载包安装节点,后来我使用brew更新。

我通过卸载brew版本来修复:

酿造卸载——忽略依赖项节点

然后我回到节点网站,通过包管理器下载并安装:https://nodejs.org/en/download/ 出于某种原因,再多的尝试通过brew重新安装都不起作用。

这是一个关于从你的计算机操作系统中移除节点的有用视频和博客文章。这是一种不同的删除方法,基于您最初安装节点的方式(brew vs.从https://nodejs.org/en/下载的二进制文件)

if you installed node with Homebrew then brew uninstall node will work. Verify that with running a node -v command in your terminal. Otherwise and if you have installed the binary file from nodeJS's websitethen you have to run this command in your terminal: sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*}. Again, verify that with running a node -v command. In both cases, successful removal of node should result in bash not recognizing what node is if it is completely removed