Ionic5搭配Angular14执行cordova prepare android报ng子进程错误
问题根因
该报错由Angular CLI 14版本的参数校验规则变更导致:Angular CLI 14开始会强制校验传入自定义构建器的所有参数,未在构建器schema中声明的参数会直接抛出Unknown argument错误。当前项目使用的旧版@ionic/cordova-builders传入的--platform=android参数未做合规声明,因此触发报错;Angular CLI 13.x版本无该强校验逻辑,因此可正常运行。
可行解决方案
- 推荐方案:升级Ionic构建相关依赖到兼容Angular 14的版本
执行以下命令安装适配版本的依赖包:
安装完成后删除项目根目录下的npm install @ionic/cordova-builders@9 @ionic/angular-toolkit@9 --save-devnode_modules文件夹和package-lock.json文件,重新执行npm install安装全量依赖,注意确认@angular-devkit/build-angular版本与本地Angular CLI主版本(14.x)保持一致,避免其他兼容问题。依赖安装完成后运行ionic cordova prepare android即可正常编译,无需降级Angular CLI版本。 - 临时兼容方案(不建议长期使用)
如果暂时无法升级Ionic相关依赖,可通过关闭Angular CLI的参数校验临时绕开问题:打开项目根目录的angular.json文件,找到architect配置下ionic-cordova-build对应的配置块,在options字段中添加"skipValidation": true配置,保存后重新执行编译命令即可跳过未知参数校验,不会再抛出参数错误。注意:该方案会关闭所有构建参数校验,后续如果传入拼写错误的构建参数不会有提前报错提示,仅建议临时调试使用。
内容的提问来源于stack exchange,提问作者marek_78
相关产品推荐
相关产品推荐

