我要在运行带有--prod选项而没有--prod选项的ng build命令时更改脚本标记的URL 。以下是一个示例。
ng build --prod
<!DOCTYPE html>
<html>
<head>
<title>Home Page</title>
</head>
<body>
<script src="https://my-site.net/prod.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
ng构建
<!DOCTYPE html>
<html>
<head>
<title>Home Page</title>
</head>
<body>
<script src="https://my-site.net/dev.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我该如何实现?
由于我们在这里设置的方式,我的本地开发环境(ng serve)与我的生产构建环境(ng build --base-href="/path/" --prod。我想使用不同的 index.html 文件进行服务和构建,构建仍然生成正确的 index.html。
如果我更改 angular.json,我会收到一条消息,指出不允许属性 fileReplacements。不过,ng serve 的文件替换似乎最容易维护。
"serve": {
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
}
}
}
Run Code Online (Sandbox Code Playgroud)
这给了我一个错误,即服务部分中不允许使用属性 fileReplacements。Package.json 有 @angular/core ^8.0 和 angular cli ~8.0.2。
每当我搜索解决方案时,我的结果都会指向 fileReplacements 文档,但这似乎不起作用。该文件不会被替换。我知道有很多其他方法可以做到这一点,但如果可能的话,我想以经批准的 angular.json 方式进行。