执行ng generate提示@ionic/angular-toolkit找不到appShell如何解决
问题
在开发Ionic Angular项目时,执行ng generate命令进行代码生成操作,程序抛出如下错误,该如何排查解决?
An unhandled exception occurred: Schematic "appShell" not found in collection "@ionic/angular-toolkit"。(中文含义:发生未处理的异常,在集合“@ionic/angular-toolkit”中找不到名为"appShell"的Schematic原理图)
排查解决方法
报错核心原因是当前环境下@ionic/angular-toolkit集合内不存在对应appShell原理图,按以下顺序逐一排查即可:
- 检查依赖版本兼容性
appShell相关原理图在@ionic/angular-toolkit@6.1.0及以上版本才正式提供,先执行npm ls @ionic/angular-toolkit查看本地安装的版本号,如果版本低于6.1.0,直接执行npm install @ionic/angular-toolkit@latest --save-dev升级到适配当前项目Angular、Ionic框架版本的最新版即可,注意不要安装跨大版本的不兼容包,避免引出其他依赖冲突问题。 - 校验angular.json配置
打开项目根目录的angular.json文件,找到cli.defaultCollection配置项,确认取值为@ionic/angular-toolkit,不存在拼写错误。如果需要生成的是原生Angular提供的appShell而非Ionic适配版本,不要走默认的Ionic原理图集合,直接指定Angular官方集合执行命令:ng generate @schematics/angular:appShell。 - 修复损坏的依赖文件
如果版本、配置都没有问题,大概率是依赖安装过程中文件损坏导致的识别失败,直接删除项目根目录下的node_modules文件夹和package-lock.json文件,重新执行npm install完成全量依赖安装后重试即可。 - 核对命令拼写
执行生成命令时注意schematic名称的大小写规则,appShell为小驼峰写法,不要错写为appshell、AppShell等错误格式。
内容的提问来源于stack exchange,提问作者Alexis Michaud
相关产品推荐
相关产品推荐

