角度AoT编译器中的导出变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了角度AoT编译器中的导出变量相关的知识,希望对你有一定的参考价值。

我试图实现动态配置,如在此post中可以看到的。

一切都在JiT编译器中工作,但我得到了

ERROR in Error during template compile of 'environment'
  Function calls are not supported in decorators but 'Environment' was called.

当尝试使用AoT编译器进行构建时。

这是我的environment.ts(注意,环境已导出):

export class Environment extends DynamicEnvironment {
  public production: boolean;

  constructor() {
    super();
    this.production = false;
  }
}

export const environment = new Environment();

我仍然想以标准方式some.component.ts使用环境:

import { environment } from '../environments/environment';

console.log(environment.config.property);
答案
不要。认真地,远离这两个文件(environment.tsenvironment.prod.ts)。这些不是关于“环境”一词的DevOps含义,而是关于调试常量。

如果需要知道您是否正在运行调试版本,请导入isDevMode

import { isDevMode } from '@angular/core';

如果需要动态配置,只需从某个地方读取一个Json或让服务器端将其作为脚本标签注入,然后直接或通过Dependency Injection即可读取(这并不难做到。)>]

但是请不要弄乱那些文件。相信我,您稍后会感谢我;)

另一答案
[通过创建config.module.tsconfig.service.ts解决了这个问题。 Config模块声明提供程序:

以上是关于角度AoT编译器中的导出变量的主要内容,如果未能解决你的问题,请参考以下文章

同一项目上的角度 AOT 和 JIT

这些角度电子邮件指令代码片段如何连接

提前编译(AOT编译)Wiki翻译

Angular 中的即时 (JiT) 与提前 (AoT) 编译

为啥 Angular AoT 不支持装饰器中的函数表达式?

译文 | Angular中的AoT编译