确定

时间:2018-03-07 09:55:01

标签: node.js angular angular-cli

我没有在stackoverflow或angular网站上看到任何关于此的信息,所以我决定问。如何确定应用程序是否与--target=production--target=development一起运行。目前我知道如何确定环境,但我不知道如何确定目标。

我需要在main.ts文件中查看此内容,以便我可以调用方法enableProdMode()。目前我正在使用丑陋的解决方案,我将boolean属性放在名为production的环境文件中,因此我可以使用以下方法检查:

import { enableProdMode } from '@angular/core';
import { environment } from './environments/environment';

if (environment.production) {
    enableProdMode();
}

但我不喜欢这个解决方案,因为环境决定目标模式。如果我执行:

ng serve --target=development --environment=ENV_NAME

然后它完全取决于env是否会调用enableProdMode()。如果我为此目的使用isDevMode,那么它将无法工作,因为它取决于enableProdMode。目前我需要有很多环境,对于每个环境,我需要有两个文件(对于每个目标),我认为这是非常多余的。

如何检查真实目标?

1 个答案:

答案 0 :(得分:0)

angular-cli中的AFAIK target仅用于控制它的生产或开发,关于优化(css,代码......)

根据您的情况,我认为A或B模式的配置文件应该位于您可以在运行时检索的单独配置文件中。在您的普通environment.[name].ts文件(例如dev /.../ prod)中,您可以使用mode设置(A或B)来确定要获取的配置文件