为什么包裹在对象中的Angular InjectionToken会引发错误?

时间:2019-11-23 12:47:56

标签: angular

我正在使用InjectionToken进行配置注入。 这个:

configuration.injection-keys.ts

export const CONFIG_INJECTION_KEYS_CORE = {
  offlineproducts: new InjectionToken<OfflineProductsConfig>('core.offlineproducts')
};

somemodule.ts

@NgModule({
  imports: [],
  providers: [
    {
      provide: CONFIG_INJECTION_KEYS_CORE.offlineproducts,
      useValue: CORE_CONFIGURATION.offlineProducts
    }
  ],
})

引发以下错误

ERROR in Error: Internal error: unknown identifier {"offlineproducts":{"filePath":"D:/angular/src/app/modules/configuration/configuration.injection-keys.ts","name":"CONFIG_INJECTION_KEYS_CORE","members":[]}}

但这不是

configuration.injection-keys.ts

export const CONFIG_INJECTION_KEYS_CORE_OFFLINE_PRODUCTS =
  new InjectionToken<OfflineProductsConfig>('core.offlineproducts');

somemodule.ts

@NgModule({
  imports: [],
  providers: [
    {
      provide: CONFIG_INJECTION_KEYS_CORE_OFFLINE_PRODUCTS,
      useValue: CORE_CONFIGURATION.offlineProducts
    }
  ],
})

我希望将注入键构造在一个对象中。随着它的增长使其更易于管理。

更新

ng build(或ng serve)不会发生此错误,而ng build --prod会发生。我仔细检查了与启用生产相关的所有代码部分,它们都没有影响。将CONFIG_INJECTION_KEYS_CORE移至模块以将其保存在同一文件中没有什么区别。

0 个答案:

没有答案