【问题标题】:Cascading Environment files in Angular 4Angular 4 中的级联环境文件
【发布时间】:2018-02-26 19:54:43
【问题描述】:

我正在开发一个包含多个环境文件的 Angular 4 项目

  • environment.prealpha.ts
  • environment.alpha.ts
  • environment.beta.ts
  • environment.production.ts

这些文件有大量的公共行,如何调用/使用单个公共文件并使用单个特定环境文件添加唯一行?

【问题讨论】:

    标签: angular environment-variables


    【解决方案1】:

    您可以设置一个预构建任务来创建正确的环境文件

    这是一个想法

    1. 拥有一个具有通用设置的 environment.base.json 文件作为 json 对象。

    例如

    {
    "envName": "base",
    "commonSetting": "common",
    "specificSetting": ""
    },
    
    1. 创建 environment.[envName].json 文件,其中每个 env 文件仅指定匹配环境的特定设置

    例如

    {
    "envName": "prod",
    "specificSetting": "prodValue"
    }
    
    1. 在您的预构建任务中,对于每个环境,读取基本 json 文件和特定环境文件。通过深度合并 2 个文件内容来创建新的 Json 对象。

    例如

    {
    "envName": "prod",
    "commonSetting": "common",
    "specificSetting": "prodValue"
    }
    
    1. 在您的预构建任务中。对于每个环境,覆盖 environment.[envName].ts 以生成从上一步生成的 JSON 对象分配环境变量的代码

    例如

     export const environment : any = JSON.parse(JSON.stringify([generatedJsonObjectFromStep3]));
    

    【讨论】:

      【解决方案2】:

      这是我们最终要做的:

      commonEnvironment.ts

      export const commonEnvironment = {
        commonVariable1 = "foo",
        commonVariable2 = "bar",
      }
      

      环境.生产.ts

      import * as common from './commonEnvironment';
      export const environment = {
          ...common.commonEnvironment,
          specificVariable1 = "foo",
          specificVariable2 = "bar",
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-03-16
        • 2018-10-27
        • 2018-12-25
        • 2020-01-01
        • 1970-01-01
        • 2018-08-21
        • 2021-10-07
        • 1970-01-01
        相关资源
        最近更新 更多