构建后角度2/4更改env变量

use*_*731 2 angular-cli angular

我读到您可以将您的环境变量放在environement.ts / environement.prod.ts中。好

但是此文件是可编译的,因此在构建后无法更改它。反正这样做吗?

(我正在使用angular-cli)

谢谢

小智 7

是的,就像这样:

环境.ts

export const environment = {
    env: 'Dev'
};
Run Code Online (Sandbox Code Playgroud)

环境.prod.ts

export const environment = {
    env: 'Prod'
};
Run Code Online (Sandbox Code Playgroud)

编辑我为解决该问题所做的是使用 window 对象,如下所示:

export const environment = {
    env: window['env'] || 'Dev' // you get it for prod
};
Run Code Online (Sandbox Code Playgroud)

在 index.html 中添加了这个:

<script src="./config.js"></script>
Run Code Online (Sandbox Code Playgroud)

在 config.js 文件中,“系统人员”可以这样写:

window['env'] = 'New environment';
Run Code Online (Sandbox Code Playgroud)

这样,如果没有提供配置文件,env 变量将有一个值,如果提供了配置文件,它将从中获取值。


小智 6

我们可以在main.bundle.js文件environment中的var environment = {}object中找到所有变量。

注意:更改后重新启动服务器。

  • 我认为这不是完美的解决方案,每次我们想要进行更改时都在 main.bundle.js 中打开、查找和替换 (3认同)