在 environment.prod.ts 文件上设置条件

make condition on environment.prod.ts file

enter image description here

如何在下面的代码和 environment.ts 文件中创建条件。

export const environment = {
  production: true,
  if(our condiion = "impdev.something.com"){
   API_url:'https://impdev.something.com/Angular',
  }
  if(our condiion = "dev.something.com"){
    API_url:'https://dev.something.com/Angular',
  }
  if(our condiion = "app.something.com"){
    API_url:'https://app.something.com/Angular',
  }

};

这里可以使用三元运算符,

export const environment = {
  production: true,
  API_url: your_condition_here ? '' : '';
};

但是你从哪里得到这里的条件?

Main.ts

if (environment.production) {
  enableProdMode();
}

environment.ts

export const environment = {
  production: false,
  animal: ''
};

environment.prod.ts

export const environment = {
  production: true,
  animal: ''
};

app.component.ts

import { Component } from '@angular/core';
import { environment } from '../environments/environment';

@Component({ ... })
export class AppComponent {
  animal: string = environment.animal;
}

idk如果是你想要的,但是在angular.jsonctrl+f搜索fileReplacements,这里可以告诉Angular用哪个环境下的文件夹文件替换不同的模式.. 然后你可以通过你的整个应用程序访问 environment.ts 中的相同变量,它会根据你的服务或构建设置自动替换。

如果不确定,只需复制粘贴包含 fileReplacements 属性 的整个 "production" JSON,然后用新值更改 replace 值environment.ts 您创建的文件(如 environment.dev.ts),然后将所有变量从一个环境复制到另一个环境并更改值,并通过应用程序使用它们

您将使用以下解决方案以其他方式实现此目的。

environment.ts

export const environment = {
  production: true,
  dev: { serviceUrl: 'https://dev.something.com' },
  stage: { serviceUrl: 'https://stage.something.com' },
  prod: { serviceUrl: 'https://prod.something.com' },
  local: { serviceUrl: 'http://localhost:8080/' },
};

NetworkService.ts

export class NetowrkService {

  url: string;
  env: string
  constructor(private http: HttpClient) {
    this.env = this.setENV();
    this.url = environment[this.env].serviceUrl;
  }

  setENV() {
    if (window.location.hostname.indexOf("dev") != -1) {
      return "dev";
    } else if (window.location.hostname.indexOf("stage") != -1) {
      return "stage";
    } else if (window.location.hostname.indexOf("localhost") != -1) {
      return "local";
    } else {
      return "prod";
    }
  }


   // Call rest API
}