Angular 10 FileReplacements 不适用于资产

And*_*Bob 7 angular angular10

我们目前正在将项目从 Angular 8 升级到 10,并且在构建过程中的文件替换方面遇到了一些麻烦。我们有两种不同的样式和不同的文本,过去是通过在配置中执行 FileReplacements 来选择的。它们看起来像这样:

"fileReplacements": [
  {
    "replace": "src/index.html",
    "with": "src/index.xy.html"
  }
  {
    "replace": "src/assets/text/de.json",
    "with": "src/assets/text/de.xy.json"
  }
]
Run Code Online (Sandbox Code Playgroud)

奇怪的是,对于 html 文件,替换似乎有效,但对于资产则不然。我们很想让它发挥作用,并且也大致了解为什么它过去有效而现在无效。

以下是我们的 package.json 中的版本:

"dependencies": {
    "@angular/common": "10.2.3",
    "@angular/compiler": "10.2.3",
    "@angular/core": "10.2.3",
    "@angular/forms": "10.2.3",
    "@angular/platform-browser": "10.2.3",
    "@angular/platform-browser-dynamic": "10.2.3",
    "@angular/router": "10.2.3",
    ...
}
"devDependencies": {
    "@angular-devkit/build-angular": "~0.1002.0",
    "@angular-devkit/build-ng-packagr": "~0.1002.0",
    "@angular-devkit/core": "~10.2.0",
    "@angular/cli": "^10.2.0",
    "@angular/compiler-cli": "^10.2.3",
    ...
}
Run Code Online (Sandbox Code Playgroud)

小智 6

阅读问题https://github.com/angular/angular-cli/issues/16779它似乎是无意的,更好的方法是将配置文件放在单独的文件夹中并设置以下资产选项

"assets": [
  "src/favicon.ico",
  "src/assets",
  {
    "input": "src/deployment/staging",
    "output": "/",
    "glob": "*.yml"
  }
],
Run Code Online (Sandbox Code Playgroud)