执行npx create-react-app出现npm ERR! Exit handler never called如何解决
报错原因
该错误属于npm自身运行时异常,在Termux这类Android端Linux模拟环境下出现的概率更高,常见触发原因如下:
- npm版本兼容问题:使用的npm版本存在已知的退出回调未触发的bug,尤其是npm v7早期版本该问题复现率极高
- Termux环境资源受限:Android系统对Termux进程的内存、文件句柄分配做了默认限制,依赖安装过程中资源不足导致npm进程异常中断,无法触发预设的退出处理逻辑
- npm本地缓存损坏:本地存储的npm缓存存在损坏的包元数据,安装过程中读取异常直接导致进程崩溃
- 依赖源访问不稳定:默认npm官方源访问延迟高、中途断流概率大,依赖下载异常触发进程意外退出
解决方法
按优先级依次尝试以下方案即可解决:
- 升级npm到最新稳定版:执行命令
npm install -g npm@latest,升级完成后重新执行创建项目命令 - 清理npm本地缓存:执行命令
npm cache clean --force,清除损坏的缓存数据后重试创建操作 - 切换国内npm镜像源:执行命令
npm config set registry https://registry.npmmirror.com,换用稳定的国内源后重试 - 调整Termux运行资源:创建项目前关闭其他后台运行的App,给Termux释放足够内存,也可以给Termux开启Wake Lock权限避免进程被系统主动回收
- 改用其他包管理工具创建项目:如果npm始终报错,可以换用yarn或pnpm完成创建
- 用yarn的场景:先执行
npm install -g yarn安装yarn,再执行yarn create react-app my-app创建项目 - 用pnpm的场景:先执行
npm install -g pnpm安装pnpm,再执行pnpm create react-app my-app创建项目
- 用yarn的场景:先执行
- 手动规避自动安装逻辑:先执行
npx create-react-app my-app --skip-install跳过自动安装步骤,进入生成的my-app目录后手动执行npm install完成依赖安装
内容的提问来源于stack exchange,提问作者Mukesh Pilane
相关产品推荐
相关产品推荐

