Angular 分块/转译文件的构建集目标

Angular build set target for chunked / transpiled files

我们正在使用 angular 6.

我想创建另一个 angular 应用程序并放入同一个域中,这里是示例 example.com 是主应用,我的新应用将托管在 example.com/app2/

这是我的 apache 配置的样子

<VirtualHost>

ServerName example.com

...

ProxyPass /app2/ http://app2-server:4200/
ReverseProxyPass /app2/ http://app2-server:4200/

ProxyPass / http://main-app-server:4200/
ReverseProxyPass / http://main-app-server:4200/

...

</VirtualHost>

现在,当我尝试访问新应用时,下载文件时出现问题,因为 angular 应用程序将在 index.html 中插入以下文件 main.js vendor.js styles.js 等等

现在来自 example.com/app2/main.js 的请求将转到 example.com/main.js 因为 angular 构建过程会自动在 index.html 中添加 main.js

有没有办法说 angular 我的应用需要添加 <script type="text/javascript" src="/app2/main.foo.js"></script>

而不是添加 <script type="text/javascript" src="main.foo.js"></script>

我知道这可以在构建过程中完成。但这些不是唯一的文件。有 webpack 动态引用和下载的块文件。这些参考也需要改变。

此外,开发人员使用开发服务器而不是构建流程。因此,此路径更改也需要成为开发构建的一部分。

所以问题是,有没有办法设置这些自动生成的文件(包括 webpack 块)的路径?

P.S。 我使用 angular 6 但 app2 可以升级到 angular 9/10.

您只需添加

ng build --prod --base-href /app2/

进入你的构建命令, 或者我很确定您可以在 build.options.baseHref

下的 angular.json 中配置它

关于开发服务器,我不确定为什么这很重要。所以我需要更多关于你想要完成的事情的细节。如果您希望同时 运行 两个项目,那就另当别论了,因为您不能让两个本地服务器监听 4200。