Ionic 6添加Android平台报spawn ENOTDIR错误问题求助
问题根因
报错核心是版本兼容问题:
- 你当前全局安装的Ionic CLI为5.4.10,该版本最高仅适配Node.js 10.x,依赖的低版本
cross-spawn库在Node.js 10.17以上版本中解析可执行文件路径时存在逻辑缺陷,会将文件路径当作目录调用子进程,直接触发spawn ENOTDIR错误。 - 从
ionic info输出可见本地未全局安装Cordova CLI,这也是Cordova相关命令无法正常执行的前置问题。
推荐解决方法(适配Node 16环境)
按顺序执行以下操作即可:
- 卸载全局旧版Ionic CLI:
npm uninstall -g ionic - 安装兼容Node 16、适配Ionic 6项目的Ionic CLI稳定版:
npm install -g @ionic/cli@6.20.9 - 全局安装匹配的Cordova CLI版本:
npm install -g cordova@11.1.0 - 进入项目根目录清理旧依赖缓存,重新安装依赖:
rm -rf node_modules package-lock.json npm cache clean --force npm install
- 重新执行添加安卓平台命令:
ionic cordova platform add android
临时规避方案(需保留旧版Ionic CLI场景)
如果项目有特殊要求必须使用Ionic CLI 5.4.10,可通过nvm切换Node版本到v10.24.1(Ionic CLI 5.x适配的最高Node版本),执行以下命令切换后重新操作即可:
nvm install 10.24.1 nvm use 10.24.1
内容的提问来源于stack exchange,提问作者Team FOS
相关产品推荐
相关产品推荐

