Angular 6 - 使用 angular.json 复制重命名资源

12
我尝试在ng build的资源复制过程中重命名文件。以下是我在`angular.json`中使用的代码:
```html

我尝试在ng build的资源复制过程中重命名文件。

以下是我在angular.json中使用的代码:

```
        "outputPath": "dist",
        "assets": [
          ...,
          {
            "glob": "favicon-v1.png",
            "input": "src/client",
            "output": "/favicon.png"
          },
          ...,
        ],

与其创建文件dist/favicon.pngng build正在创建一个dist/favicon.png/favicon-v1.png

它似乎拒绝重命名文件-它总是创建一个名称为我想使用的favicon.png的文件夹,然后将原始文件放在其中。

这是预期行为吗?除了在源代码控制中将文件favicon-v1.png重新命名为favicong.png之外,是否有其他解决方法?

我使用的是:

    "@angular/cli": "^6.1.5"

    "@angular/animations": "^6.0.1",
    "@angular/common": "^6.0.1",
    "@angular/compiler": "^6.0.1",
    "@angular/core": "^6.0.1",
    "@angular/forms": "^6.0.1",
    "@angular/http": "^6.0.1",
    "@angular/platform-browser": "^6.0.1",
    "@angular/platform-browser-dynamic": "^6.0.1",
    "@angular/router": "^6.0.1",
    "@angular/upgrade": "^6.0.1",

更新:在 Angular 5 中,与 angular-cli.json 类似的代码可以正常工作。


最近我也遇到了Angular8的同样问题。 - Srinivasan K K
嗨,是的,这是预期行为,它不会重命名文件,我希望它可以。在我的情况下,我正在为Firebase服务工作者使用不同的文件来进行推送通知,并且实际上必须为每个环境创建一个不同的文件夹,将文件放入其中,然后将其添加到angular.json的每个配置中的资产中。 - javebratt
1个回答

5
由于输入和输出属性是文件夹,因此您无法像这样重命名文件。请查看此处的文档。
我不知道你为什么需要这样做,但你可以将v1图标放在v1子文件夹中,并已经使用最终名称,然后当你需要v1图标时,可以使用资产设置从v1文件夹复制到输出文件夹。
否则,您始终可以使用自定义库或自定义脚本来执行此操作,并将其从资产中删除。

奇怪的是,在使用angular-cli.json的Angular 5中,类似的代码可以正常工作。 - Wand Maker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接