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

308

每次我运行 "Ionic start 项目名称" 命令时,都会收到以下错误信息:

错误信息

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)

1
相对路径错误。 - Subburaj
请检查./bash_profile中的路径。 - Mohan Gopi
在MacOS上,从http://nodejs.org重新安装可以帮助查看https://dev59.com/Jmgu5IYBdhLWcg3wfHI_#12313655的赞数。 - Wolfgang Fahl
如果您已经配置了构建脚本,请尝试运行“npm run build”,然后再运行“npm start”。 - Varun
22个回答

2

只需跟随三个步骤:

  1. 强制清除 npm 缓存:

    npm cache clean -f

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

    npm install -g n

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

    a. sudo n stable(获取稳定版本)

    b. sudo n latest(获取最新的 node 版本)

    c. sudo n x.x.x(获取特定版本的 node)


2

是的,你应该重新安装node:

sudo rm -rf /usr/local/lib/node_modules/npm
 brew uninstall --force node                
 brew install node

1
我因为混合使用安装和更新方法而遇到了这个错误: 通过从网站下载软件包安装了node,然后我使用brew进行了更新。

我通过卸载brew版本来解决:

brew uninstall --ignore-dependencies node

然后我回到node网站,通过软件包管理器下载并安装:https://nodejs.org/en/download/ 由于某种原因,再次尝试通过brew重新安装没有起作用。


1
我遇到了类似的问题,当我尝试通过npm test执行Mocha时,整个../lib/utils目录找不到。我尝试了这里提到的解决方案,但没有成功。最终,我卸载并重新安装了Mocha包作为我正在工作的npm项目的依赖项,之后它就可以工作了。因此,如果有人在使用作为依赖项安装的npm包时遇到此问题,请尝试卸载并重新安装该包(如果您还没有这样做)。

1
我通过运行以下命令解决了这个问题:
``` nvm install node --reinstall-packages-from=node ```

0
在我的情况下,$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文件中。


0
在 Fedora 27 上,我通过以下方式解决了这个问题:
sudo rm -f  /usr/local/lib/node_modules/npm
sudo dnf reinstall nodejs

0

这是一段有用的视频和博客文章,介绍如何从计算机操作系统中删除node。这是一种不同的删除方法,取决于您最初安装node的方式(brew vs. 从https://nodejs.org/en/下载的二进制文件)。

  • 如果您使用Homebrew安装了node,则brew uninstall node将起作用。在终端中运行node -v命令验证。

  • 否则,如果您从nodeJS网站安装了二进制文件,则必须在终端中运行此命令:sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*}。再次运行node -v命令验证。

  • 在两种情况下,成功删除node应导致bash无法识别node是否已完全删除。


2
欢迎提供解决方案的链接来支持答案,但您发布的答案应该是完全自包含的,即不需要访问者点击到可能包含意外或恶意内容,或已不存在的另一个网站。 - tripleee

0

我通过删除 node_modules 然后重新安装 node 的稳定版本来解决这个问题。


1
请添加为什么这个解决方案可以解决问题。 - Ingo Steinke

0
在我的macOS(10.13.3)中,我重新安装了Node版本管理器后,问题得到了解决。
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
source ~/.bashrc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接