在Angular Node Package中使用环境变量

时间:2017-06-23 13:53:09

标签: node.js angular angular-cli

我正在为我们创建的日志记录服务创建一个角度4节点包。是否可以使用angular cli环境变量来设置服务的默认路径?如果是这样,应该如何为环境文件定义路径?

我按照以下说明创建节点包: https://medium.com/@cyrilletuzi/how-to-build-and-publish-an-angular-module-7ad19c0b4464

我按照以下示例设置了环境变量: http://tattoocoder.com/angular-cli-using-the-environment-option/

https://medium.com/beautiful-angular/angular-2-and-environment-variables-59c57ba643be

1 个答案:

答案 0 :(得分:2)

您可以使用Angular docs forRoot中说明的here方法执行此操作。

在外部Angular库的内部修改主导出模块以具有此结构:

export class MyLibraryModule {
  static forRoot(config: configData): ModuleWithProviders {
    return {
      ngModule: MyLibraryModule,
      providers: [
        {provide: AppConfigModel, useValue: config }
      ]
    };
  }

  constructor(@Optional() config: AppConfigModel) {
    if (config) { /* Save config data */ }
  }

 }

 export class AppConfigModel {
    defaultPath: string;
 }

将此模块导入应用程序时,请使用forRoot静态方法并传入配置数据。

imports: [
    MyLibraryModule.forRoot({ defaultPath: environment.defaultPath }),
 ]

在旁注中,我使用此library来创建我的Angular npm模块。它简化了过程。