/**/

在我的项目中,我有3个环境文件(dev、staging、production).我想 for each dist文件夹更改它们(当部署到dev时,我需要envi-dev链接从中获取数据.对于staging和prod也是如此)

export const environment = {
  production: true,
  hmr: false,
  backend: false,
  staging: false,
  apiKey: 'prodKey',
  API_URL: "my backend link"
};

当然,在dev和staging env中生产是错误的..

"configurations": {
            "production": {
              "fileReplacements": [
                {
                  "replace": "src/environments/environment.ts",
                  "with": "src/environments/environment.prod.ts"
                }
              ],
              "optimization": true,
              "outputHashing": "all",
              "sourceMap": false,
              "namedChunks": false,
              "extractLicenses": true,
              "vendorChunk": false,
              "buildOptimizer": true,
              "budgets": [
                {
                  "type": "initial",
                  "maximumWarning": "2mb",
                  "maximumError": "5mb"
                },
                {
                  "type": "anyComponentStyle",
                  "maximumWarning": "6kb",
                  "maximumError": "10kb"
                }
              ],
              "outputPath": "dist/production"
            },

但是当我构建时,我通常会输入一个文件,并使用另一个文件来构建和部署,就像我的api文件中一样

import { environment } from 'src/environments/environment';

// import { environment } from "src//environments/environment.stage";
// import { environment } from "src//environments/environment.prod";

const API_URL = environment.API_URL;

命令是:ng build和ng build--配置=暂存和ng build--prod

但是我不想继续 comments API envir.如上所述,我希望在 for each 环境构建和更改dist文件后,它会自动更改,这样我就可以正常部署到git并执行正常的管道.

知道吗?谢谢

推荐答案

将所有导入保留为

import { environment } from 'src/environments/environment';

将配置对象扩展到angular.json

扩展配置对象:

... // angular.json
configurations": {
    "production" {...} // leave as it is,
    "dev": {
        "fileReplacements": [
            {
                "replace": "src/environments/environment.ts",
                "with": "src/environments/environment.dev.ts"
            }
        ]
    },
    "staging": {
        "fileReplacements": [
            {
                "replace": "src/environments/environment.ts",
                "with": "src/environments/environment.staging.ts"
            }
        ]
    }
}

Angular相关问答推荐

需要做什么才能使 ErrorHandler 正常工作?

没有调用订阅的原因是什么?

Renderer2.appendChild 没有按预期工作?

清除Angular2中的输入文本字段

如何在 Angular Cli 中生成 .angular-cli.json 文件?

错误:formControlName 必须与父 formGroup 指令一起使用.您需要添加一个 formGroup 指令

相对于根目录的 SCSS 导入

NgrxStore 和 Angular - 大量使用异步管道或在构造函数中只订阅一次

NG2-Charts 无法绑定到“ datasets”,因为它不是“ canvas”的已知属性

Angular 4 错误:没有 HttpClient 的provider提供者

如何在 Angular 2 中动态添加和删除表单字段

如何从materialAngular使用分页器?

将 [NgStyle] 与条件组合(if..else)

Angular2:子组件访问父类变量/函数

angular2 在特定元素上手动触发点击事件

angular2调用父组件的函数

Angular 2在formArrays上找不到具有未指定名称属性的控件

NgFor 不会在 Angular2 中使用 Pipe 更新数据

在离开页面之前警告用户未保存的更改

Angular CLI SASS 选项