Angular fileReplacements仅适用于ng服务,不适用于ng构建



我需要为生产环境使用不同的index.html。因此,我创建了一个index.prod.html文件,在angular.json中,我使用生产环境的fileReplacements配置。

"build": {
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/index.html",
"with": "src/index.prod.html"
}
],
...
}
}
}

当我运行应用程序(ng-server(时,一切都很好,无论是为dev还是prod-env运行,它都会加载相应的index.html

问题是构建,它也为prod-env构建了index.html。

我在Angular 8中遇到了完全相同的问题,还想替换索引文件。我仍然想知道为什么ng serveng build在这里的工作方式不同,但在下面的问题中找到了解决这个问题的另一个解决方案:如何在ng serve和ng build中使用不同的index.html文件?。

我切换为使用--index参数进行构建。因此,我将不同的index.html文件添加到一个额外的文件夹中,并将它们在package.json中链接到类似的不同构建中

"build:test": "ng build --index /src/index-files/test/index.html"
"build:prod": "ng build --index /src/index-files/prod/index.html"

通过这种方式,正常的src/index.html被参考的/src/index-files/{test|prod}/index.html版本所取代。

提示:此解决方案仅适用于ng build,因为ng serve没有--index选项。但就我而言,这没有问题。

最新更新