将配置外部化到单独的文件
创建文件settings.js
in assets
这将保存你的环境变量:
const GlobalSettings = {
... your settings values
}
将此文件添加到您的index.html
所以启动时会自动加载(但不会被Webpack打包)。
<script src="assets/settings.js" type="application/javascript"></script>
在你的代码中GlobalSettings
然后将在全球范围内提供。
注入内容settings.js
进入环境
如果您更喜欢使用 Angular 应用程序内部的环境,您可以覆盖环境的特定属性main.ts
:
environment.someProperty = GlobalSettings.someProperty;
... bootstrap Angular
现在您可以通过替换来更改设置settings.js
而不必重建整个应用程序。
使用环境变量编辑文件
Use envsubst
替换你的变量settings.js
// settings.template.js
const GlobalSettings = {
someProperty: "${SOME_PROPERTY}"
}
// command that starts your server, e.g. docker command
envsubst < settings.template.js > settings.js && <command to start webserver>
如果您将 Angular 应用程序放在 Java jar 中,这显然不起作用。
Provide settings.js
通过 Spring 后端
不要将文件复制到static
目录(因此不在 jar 中)。
相反,在您的 Java 应用程序中创建一个端点来侦听/assets/settings.js
。
在这里您可以使用所有 Java/Spring 魔法(包括读取环境变量)来组装settings.js
与所需的内容。