运行ng build时如何将块文件放在单独的文件夹中?

时间:2017-02-13 04:36:58

标签: angular typescript

如何配置为angular2中的所有块文件在“dist”文件夹中创建单独的文件夹?

我使用ngcli并使用ng build运行项目。它创建“dist”文件夹。这很好。

This is basic structure of project.

但我想将所有* .chunk.js和* .map文件放在dist的单独文件夹中。喜欢

DIST /模块/ 0.chunk.js

DIST /模块/ 0.map

所以结构看起来像......

enter image description here

先谢谢。

3 个答案:

答案 0 :(得分:1)

尽管这个问题有些过时,但我在Angular CLI 7和8中偶然发现了相同的问题。

根据Angular文档,您可以使用'--resourceOutputPath'和'--deployUrl'。不幸的是--resourceOutputPath仅适用于样式表中定义的资产,而'--deployUrl'不能将资产放置在文件夹中。

我当前的解决方案是:

  1. 将构建配置中的“ baseHref”选项设置为“ / static-files /”
  2. 在构建配置中将“ outputPath”选项设置为“ dist / static-files /”
  3. 从输出文件夹中复制index.html文件,并将其放在1个文件夹中。

现在您以一个类似的结构结束   / dist    index.html    /静态文件       chunk1.js       chunk2.js       等

当然,现在您的所有资产都位于单独的文件夹中,而不仅仅是js文件。但这对我有用。

答案 1 :(得分:0)

您可以使用Angular ClI,然后创建多个NgModule,并在路由器中使用Lazyload。然后,当您构建ng build --prod时,每个模块将位于单独的文件中。

以下是一些关于延迟加载的推荐文章: http://blog.angular-university.io/angular2-ngmodule/ https://angular-2-training-book.rangle.io/handout/modules/lazy-loading-module.html

答案 2 :(得分:0)

尝试使用像gup或grunt这样的单独构建包,这会将块文件发送到单独的文件夹。或者你也可以在tsconfig.json中创建一个编译器选项{outDir:' src / chunk'}。看看这是否能解决您的问题。