Angular 10文件替换不适用于资产

Angular 10文件替换不适用于资产,angular,angular10,Angular,Angular10,我们目前正在将项目从Angular 8升级到Angular 10,在构建过程中,我们在文件替换方面遇到了一些问题。我们有两种不同的样式和不同的文本,它们过去是通过在配置中进行文件替换来选择的。 它们看起来像这样: "fileReplacements": [ { "replace": "src/index.html", "with": "src/index.xy.html"

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

"fileReplacements": [
  {
    "replace": "src/index.html",
    "with": "src/index.xy.html"
  }
  {
    "replace": "src/assets/text/de.json",
    "with": "src/assets/text/de.xy.json"
  }
]
奇怪的是,对于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",
    ...
}
阅读问题它似乎是无意中起作用的,更好的方法是将配置文件放在单独的文件夹中,并设置以下资产选项

"assets": [
  "src/favicon.ico",
  "src/assets",
  {
    "input": "src/deployment/staging",
    "output": "/",
    "glob": "*.yml"
  }
],

我刚刚让angular 10使用了我们的文件替换,问题中的方式从angular 9开始就停止了,似乎捆绑包之外的文件替换从未得到官方支持,因此需要更改为这种方式: i、 e.如果你想做以下事情

 {
    "replace": "src/assets/text/de.json",
    "with": "src/assets/text/de.xy.json"
  }
然后,您需要更改它以在配置中执行以下操作:

...
"assets": [
             ...
             {
                "input": "src/assets/text/xy",
                "output": "assets/",
                "glob": "de.json"
              }
           ]
...
在编写代码之前,您需要创建xy文件夹并将de.xy.json文件放在那里,然后重命名为de.json

因此,上面的配置将尝试在“src/assets/text/xy”中找到“de.json”文件,并在构建到dist时复制到“assets”文件夹