Angular-cli:索引带有多个应用和索引的outdir路径

时间:2017-11-22 13:09:03

标签: angular-cli

我将我的应用分成两个应用:“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.htmlapp/modules/export/index.html但结果是一样的。

有关于github here的讨论,但最终没有人提供有效的解决方案。

1 个答案:

答案 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

编辑:旧答案

我设法规避问题,方法如下:

  • 我更改了我的根文件夹“app2”,以便索引直接在根
  • 我制作了相对于根文件夹路径所需的所有其他路径(polyfills,assets,ts.config等...)

我的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