cli配置中的不同资产用于ng服务和ng构建[Angular 5]

时间:2017-12-21 14:34:10

标签: angular typescript build angular-cli assets

使用ng build时可以使用不同的资产数组吗?

"assets": [
  "assets",
  "favicon.ico",
  {
    "glob": "**/*",
    "input": "../externalDir",
    "output": "./app/",
    "allowOutsideOutDir": true
  }
]

在我使用ng build的情况下,我只想构建这个:

"assets": [
  "assets",
  "favicon.ico"
]

2 个答案:

答案 0 :(得分:2)

我不相信可以选择执行特定于环境的资产。但是你可以在你的angular-cli.json中创建其他应用程序,它们基本上只是彼此的副本,但具有不同的资产。例如

// angular-cli.json
"apps": [
    {
        "root": "src",
        "outDir": "dist",
        "name": "devApp",
        "assets" : [
            "assets",
            "favicon.ico",
            {
                "glob": "**/*",
                "input": "../externalDir",
                "output": "./app/",
                "allowOutsideOutDir": true
            },
        ],
        ...
    },
    {
        "root": "src",
        "outDir": "dist",
        "name": "prodApp",
        "assets": [
            "assets",
            "favicon.ico"
        ],
        ...
    }
]

现在,您可以通过构建特定的" app"

来以不同方式构建资源
// dev
ng build --app=0
// or
ng build --app=devApp

// prod
ng build --app=1
// or
ng build --app=prodApp

多个应用上的Angular cli docs

答案 1 :(得分:0)

我的情况是每个环境包含不同的robots.txt文件。因此,在src/environments文件夹中,我创建了两个文件:robots.txtrobots.prod.txt。在angular.json中将其包含在assets数组中,并按如下方式使用fileReplacements(我仅粘贴相关部分):

"architect": {
  "build": {
    "options": {
      "assets": [
        "src/assets",
        {
          "glob": "robots.txt",
          "input": "src/environments/",
          "output": "/"
        }
      ]
    },
    "configurations": {
      "production": {
        "fileReplacements": [
          {
            "replace": "src/environments/robots.txt",
            "with": "src/environments/robots.prod.txt"
          }
        ]
      }
    }
  }
}

我正在使用@angular/cli: ~8.3.4