在 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.json
ctrl+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
}
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.json
ctrl+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
}