Ionic 4多应用项目创建异常:ng提示找不到app1项目求助
解决Ionic 4多应用项目中
ionic serve --project app1找不到项目的问题 这个问题的核心原因是:你只更新了Ionic的配置文件(ionic.config.json),但没有将app1添加到Angular的工作区配置(angular.json)中。当ionic serve执行时,它会调用Angular CLI的ng run命令,而Angular CLI只会读取根目录的angular.json来查找项目——你的app1此时是一个独立的Angular项目(拥有自己的angular.json),所以Angular无法识别它。
下面是针对你的环境(Ionic v4.12.0、Angular CLI 7.3.8)的具体解决步骤:
步骤1:确保根目录有一个空的Angular工作区
如果你的monorepo根目录还没有angular.json,先执行以下命令创建一个空的Angular工作区:
cd monorepo ng new . --createApplication=false
这个命令会生成根目录的angular.json,且不会创建默认的Angular应用,正好适合多应用项目的基础结构。
步骤2:合并app1的Angular配置到根angular.json
- 打开
apps/app1/angular.json,找到projects节点下的app1和app1-e2e两个配置块。 - 复制这两个配置块,粘贴到根目录
angular.json的projects节点下。 - 关键:调整路径配置,因为现在项目的根路径是
apps/app1,需要把所有相对路径前缀加上apps/app1/:- 比如
root字段改为"root": "apps/app1" sourceRoot改为"sourceRoot": "apps/app1/src"architect下的各种路径(比如index、main、polyfills等)都要对应调整,例如:"index": "apps/app1/src/index.html", "main": "apps/app1/src/main.ts", "polyfills": "apps/app1/src/polyfills.ts"
- 比如
步骤3:移除app1目录下的独立angular.json
删除apps/app1/angular.json,因为我们现在统一使用根目录的angular.json作为工作区配置,避免出现配置冲突。
步骤4:重新启动服务
现在运行以下命令应该就能成功启动app1了:
ionic serve --project app1
额外提示:正确的多应用项目创建流程(避免后续踩坑)
下次创建新的子应用时,建议按照以下流程操作,无需手动合并配置:
- 在
monorepo根目录下执行:ionic start app2 angular --no-deps --directory apps/app2 - 然后将
app2添加到Angular工作区:
这个命令会自动更新根目录的ng generate application app2 --directory apps/app2angular.json,并正确配置所有路径。
内容的提问来源于stack exchange,提问作者Marco
相关产品推荐
相关产品推荐

