Angular中的全局常量,取决于构建配置



我正在尝试将一个完全由组件构建的AngularJS 1.6应用程序迁移到Angular 12。到目前为止,一切正常,但我有一个大问题,因为我们的项目结构:

该项目是一个多客户端门户,具有几个不同的"配置文件"。对于每个客户端(不同的资产,api - url等),后端是Java,前端是AngularJS/Angular Hybrid(现在)。根据通过Angular-CLI的前端构建配置,我为相应的客户端构建前端。

我现在的问题是:在AngularJS-Application中,我们将AngularJS-constants添加到AngularJS-App

(function () {
'use strict';
function constant() {
return {
CUSTOMER_NAME : 'client name',
// and many more...
};
}
angular
.module('our.module')
.constant('CLIENT_CONSTANTS', constant());
})();

取决于构建配置(所有脚本都被添加到index.html中,因为我们以前没有使用webpack),例如

<script src="${clientName}"></script>

,${列出}是客户端的占位符,在构建期间被gulp取代。这在Angular中已经不可能了,因为Angular是通过Angular- cli注入脚本标签的。似乎不可能将变量从Angular-CLI传递到代码,这正是我需要的:-(所以我想知道如何根据Angular-CLI- build配置添加全局常量!什么好主意吗?我尝试将constants文件添加到配置的script-Block中,但无济于事。(

我把客户端文件重构为TypeScript:

export const PROFILE_CONSTANTS = {
CUSTOMER_NAME : 'client name',
// and many more
}

我还尝试通过ES6-import动态导入文件,这也是不可能的。我已经没主意了。

你可能想使用Angular的配置(以前称为Angular环境)。

这里有一个示例设置让您开始:

https://dev.to/mikgross/set - -多-环境-角- 376 - c

请注意,随着时间的推移,这已经发生了很大的变化,所以请确保你使用的是与Angular 12相关的解决方案。

上述文章唯一遗漏的是如何访问给定配置的变量。基本上是从环境/环境中导入。然后Angular服务器会根据你在Angular .json

中指定的filereplacement来提供正确的环境文件。请注意,在给出的示例中,它们为不同的服务器创建不同的配置,但您同样可以将此应用于为不同的客户端创建不同的配置。

最新更新