0

我的场景如下,我有一个名为的文件config.ts,其中存储了我的 Web 服务的 url:

/config/webservices.ts

export const URL = "http://localhost:3000/login"; 

development我想知道是否有任何方法可以根据我是否在或类似的情况下动态获取某个变量的值production

var ENVIRONMET= ENV.getEnvironment //if is development http://localhost:3000/ else https://myapp.herokuapp/;
export const URL = ${"ENVIRONMET}login"; 

所以当我跑步时

ng build --prod

将自动将值从 更改ENVIRONMEThttps://myapp.herokuapp/否则,因为我development将使用:http://localhost:3000/

我不知道这是否可能。

我该怎么做?谢谢你。

4

2 回答 2

1

在 environment.ts 中具有值,该值用于使用 environment.prod.ts 进行生产构建的角度替换。

例如在 environment.ts 中的内容可以是:

export const environment = {
   production: false,
   url: 'http://localhost:3000',
};

在 environment.prod.ts 内容可以是:

export const environment = {
   production: true,
   url: 'https://myapp.herokuapp/',
};

如果您希望有一个单独的 config.ts,请以类似的方式创建一个 config.prod.ts,并在 angular.json 中添加文件替换

"configurations": {
        "production": {
          "fileReplacements": [
            {
              "replace": "src/environments/environment.ts",
              "with": "src/environments/environment.prod.ts"
            },
            {
              "replace": "src/config.ts",
              "with": "src/config.prod.ts"
            }
          ],
 }
于 2020-08-26T16:12:32.037 回答
0

创建2个文件environment.tsenvironment.prod.tssrc/environments文件夹中。

环境.prod.ts

export const environment = {
  URL: 'https://myapp.herokuapp/'
};

环境.ts

export const environment = {
  URL: 'http://localhost:3000/'
};

并确保在您的angular.json以下行中可用。

    "configurations": {
        "production": {
          "fileReplacements": [
            {
              "replace": "src/environments/environment.ts",
              "with": "src/environments/environment.prod.ts"
            }
          ],

并且在您config.ts使用这种方式。

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

export class Config {
    public static URL = environment.URL;
}

它将动态绑定 URL。

于 2020-08-26T16:13:41.253 回答