如何为 Angular 环境使用默认值

bob*_*uns 10 typescript angular

我的 Angular 应用程序有几个环境文件:

  • 环境.ts
  • 环境.dev.ts
  • 环境.prod.ts

我想使用所有环境共享的默认变量,而不在每个文件中复制它们。如果我仅在environment.ts 中添加变量“homeUrl” ,例如:

export const environment = {
  production: false,
  apiUrl: 'http://some-backend-url/',
  homeUrl: '/illustrator/directory'
};
Run Code Online (Sandbox Code Playgroud)

当我使用 dev 配置运行应用程序时,environment.dev.ts中的变量已正确加载,但 homeUrl 未定义,因为它仅在environment.ts文件中声明。

有没有办法使用环境之间共享的默认变量而不复制它们?

小智 11

您可以从外部导入默认变量。

默认.ts:

export const default = {
  apiUrl: 'http://some-backend-url/',
  homeUrl: '/illustrator/directory'
}
Run Code Online (Sandbox Code Playgroud)

在 environment.ts 中:

import {default} from 'default'

export const environment = {
  ...default,
  production: false
}

Run Code Online (Sandbox Code Playgroud)

并将其导入到所有文件中。所以通过这种方式你只能在 default.ts 文件中修改,并且会在所有环境中自动应用

  • 尽管我无法使用“默认”作为名称,但这个建议有效,谢谢奥列格。 (3认同)
  • 如果我在其中一个环境文件中声明变量,它会覆盖默认变量吗? (2认同)