在我的项目中,我有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相关问答推荐

在不使用散列(#)路由的情况下刷新Angular 8的SPA时,删除404错误

如何用ANGLE指令覆盖Html元素的数据绑定属性

CDK虚拟滚动由于组件具有注入属性而在滚动时看到错误的值

Angular:将服务注入非独立组件导致应用程序中断

当项目具有BrowserAnimationsModule时,Angular UI未拾取数据模型更改

ANGLE DI useFactory将参数传递给工厂函数

从canActivate创建时,Angular material 对话框不接收MAT_DIALOG_DATA

具有多个输入的Angular struct 指令在第一次加载构件时没有值

我正在try 将一个带有模块联盟的Angular 8项目expose 到另一个Angular 项目,Angular 是15,这可能吗?如果是这样,有什么建议吗?

元素上的Angular 管道链接不起作用

当信号的值发生变化时,模板不会更新

无法使用@ngrx/component-store 在其他组件中获取状态更改值

有没有办法订阅部分 BehaviorSubject 值的变化?

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

Chart.js 如何编辑标题标签 colored颜色

TypeError:this.restoreDialogRef.afterClosed 不是函数

使用directive指令将类添加到host元素中

从 angular2 模板调用静态函数

Angular 2 中的动态模板 URL

Angular 2:如何编写 for 循环,而不是 foreach 循环