Angular CLI文件默认/开发的替换

时间:2019-02-15 18:55:55

标签: angular-cli angular-cli-v7

我有一个相当复杂的angular.json,因为我有多个项目。我希望每个项目有单独的environment.ts文件。当构建目标是生产环境时,替换环境文件似乎非常简单:

"configurations": {
  "production": {
    "fileReplacements": [
      {
        "replace": "src/environments/environment.ts",
        "with": "src/private-label/redacted/environments/environment.prod.ts"
      }
    ],
  }
}

我正在寻找的是一种对默认/开发配置执行相同操作的方法。 angular.json没有包含我可以找到的类似内容的配置节点,因此我不确定在不针对生产目标时是否可以和/或在何处指定fileReplacements

当然,如果有一个更好的方法来处理每个我看不到的项目的环境,我也会对此感兴趣。

3 个答案:

答案 0 :(得分:0)

我假定使用“默认/开发配置” 是指ng serve命令提供的服务。

选项1:替换环境文件:

您还可以在fileReplacements对象中指定build数组(此数组用于ng serve)。

  "build": {
    "options": {
      [...]
      "fileReplacements": [
        {
          "replace": "src/environments/environment.ts",
          "with": "src/environments/environment.development.ts"
        }
      ]      
    },
    "configurations": {
      // other - non default - configurations 
    }
  }

选项2:指定默认配置:

如果您想使用ng serve来提供现有配置,则可以更改serve选项:

  "configurations": {
    "youConfigName": {
      // config details here
    }
  },
  [...]
  "serve": {
    "options": {
      "browserTarget": "name-of-your-app:build:youConfigName"
    }
  }

重要的一点是使用:yourConfigName设置构建配置目标。


这两个选项都是针对每个项目配置的,因此可以让您完全控制。

答案 1 :(得分:0)

@jowey的答案有效,但对Angular 8进行了小扩展。我必须在URL前面添加./

“替换”:“ ./ src / environments / environment.ts”, “ with”:“ ./src/environments/environment.development.ts”

答案 2 :(得分:0)

此外,请务必执行正确的命令来启动/提供您的应用。就我而言,我使用 Azure Pipelines 部署到 Azure 应用服务,命令是:

enter image description here

注意,为了实现文件替换,“--configuration=production”是强制性的。

我还将“fileReplacements”部分放在angular.json文件的“构建”和“配置”部分:

enter image description here