我知道Angular中的environment.ts文件,但最终我将敏感数据提交到git repo。在Java中,我只能引用可以在服务器上设置的OS环境变量。
在我们公司中,CI码头工人将所有应用程序都推送到OpenShift中,这意味着我无权访问文件系统,因此我不能只是手动放置生产环境。
有人知道如何获取OS环境变量吗?
答案 0 :(得分:1)
如果要将角度应用程序与Webpack捆绑在一起,则可以使用webpack.DefinePlugin。
plugins: [
new webpack.DefinePlugin({
"some_variable": JSON.stringify(process.env.SOME_ENV_VAR || "my_default_value")
})
]
然后,您可以在角度应用程序中引用“ some_variable”。您可以在typings.d.ts
文件中声明它们,以便识别它们。
declare const some_variable: string
您始终可以拥有一个可以通过api调用为您提供这些变量的Web服务。
答案 1 :(得分:1)
具有提供该配置的API,并从angular中检索该
app.get("/api/config/default", function(req, res) {
res.send({
a: process.env["A_VAR"]
});
})
让后端生成角度常数
app.get("/generated-config.js", function(req, res) {
res.send(
"angular.module('myApp').constant('MY_CONFIG',"
+ "{'a': \"" + process.env["A_VAR"] + "\""
+ "})"
);
});
您可以为此使用ng-constant。 我更好地喜欢这种方法,因为阻止依赖此配置的角度控制器和服务变得非常容易。就我而言,后端会生成此文件,并将其与其余的静态文件一起提供。