我将我的应用分成两个应用:“app”/“app2”,我独立构建它们。他们有自己的模块和自己的index.html
我的问题是,当我构建“app2”时,index.html的输出路径不是构建文件夹的根目录。
以下是app2的angular-cli.json
:
"name": "app2",
"root": "src",
"outDir": "dist-app2",
"index": "./app/modules/app2/index.html", <-- location of my index
"main": "./app/modules/app2/main-export.ts"
当我构建时,当我希望它位于根目录时,我会得到build-app2/app/modules/export/index.html
的路径:build-app2/index.html
我知道如何使用webpack做这个,但我不想弹出,我很确定它可以直接用cli完成,但无法弄清楚如何。
我尝试了./app/modules/export/index.html
和app/modules/export/index.html
但结果是一样的。
有关于github here的讨论,但最终没有人提供有效的解决方案。
答案 0 :(得分:0)
我在这里提供了2个答案,但讨论仍在进行in this thread on the angular-cli repository所以请看一下这里我们可能会在某个时候提出更好的解决方案。
新答案 更易于维护并符合处理多应用程序设置的angular-cli方式。
在阅读了有关angular-cli repo的一些提交后,我发现了appRoot
配置文件中的angular-cli.json
选项,它允许我使用正确的cli为每个应用生成组件文件夹并将它们添加到正确的模块:
"name": "app2",
"root": "src/modules/app2",
"appRoot": "."
"outDir": "dist-app2",
"assets": ["assets"],
"index": "index.html"
这允许我执行ng g c components/new-component --app app2
之类的操作,这会在src/modules/app2/components/new-component
中生成新组件并相应地更新app2.module.ts
,我必须复制一些文件和文件夹,但最后它是方式更易于维护和理解。希望angular-cli文档很快会更新为appRoot
编辑:旧答案
我设法规避问题,方法如下:
我的angular-cli.json
文件现在看起来像是“app2”:
"name": "app2",
"root": "src/app/modules/app2", <-- new root
"outDir": "dist-app2",
"assets": ["../../../assets/i18n"], <-- relative path to root
"index": "index.html", <-- index.html is now directly in root
"main": "main-export.ts", <-- so is my main file // optional though
"polyfills": "../../../polyfills.ts", <-- relative path to root
"tsconfig": "../../../tsconfig.app.json", <-- relative path to root
"testTsconfig": "../../../tsconfig.spec.json", <-- relative path to root
"styles": ["../../../scss/modules/export.scss"], <-- relative path to root
"scripts": [],
"environmentSource": "../../environments/environment.ts", <-- relative path to root
我的输出文件夹结构现在正常:
dist-app2/index.html