Angular如何为不同的环境共享相同设置的json配置文件



我有一个Angular 9+应用程序,它使用APP_INITILIZER加载外部json配置文件,这样我们就可以在不重建应用程序的情况下修改文件。

我们有一些这样的配置文件用于不同的环境,如devqastaging等。在angular.json文件中,我们在assets部分指定要使用的文件。

我们有一些与环境无关的设置。例如,彩色的设置

...
,
{
"title":"red",
"header":"blue"
},
...

问题是,每次我们添加如上所述的新设置时,我们都需要在每个配置文件中重复它。我想知道是否有一种方法可以只添加一次常用设置,并在所有其他配置文件中重用它们?

我通常采用的方法是拥有一个通用的环境文件,如environment.common.ts,但该文件看起来与略有不同

export const commonEnv = {
title: 'red',
header: 'blue'
};

然后,我使用Object.assign.将设置与正常环境文件合并

import { commonEnv } from "./../environment.common";
import { environment } from './../environments/environment';
const mergedSettings = Object.assign(commonEnv, environment);

您现在可以使用mergedSettings来获取所有设置。

最新更新