我创建了一个基于 Nx 的工作区,它有两个 shell 应用程序(app1 和 app2)。将在这两个应用程序中重用这个 CoreModule 库。
在添加 Ngrx 存储根时,我从库中访问环境对象时出现错误,因为环境文件夹存在于 shell 应用程序中。
请让我知道如何将环境对象注入核心模块,以便我可以对模块进行条件加载
!环境。生产?StoreDevtoolsModule.instrument():[]
这是我遇到错误的代码片段,我在注释中包围了该行。
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { StoreModule } from '@ngrx/store';
import { EffectsModule } from '@ngrx/effects';
import {
APP_FEATURE_KEY,
initialState as appInitialState,
appReducer
} from './+state/app.reducer';
import { AppEffects } from './+state/app.effects';
import { NxModule } from '@nrwl/nx';
import { StoreDevtoolsModule } from '@ngrx/store-devtools';
// <error>
import { environment } from '../environments/environment';
// </error>
import { storeFreeze } from 'ngrx-store-freeze';
@NgModule({
imports: [
CommonModule,
NxModule.forRoot(),
StoreModule.forRoot(
{ app: appReducer },
{
initialState: { app: appInitialState },
metaReducers: !environment.production ? [storeFreeze] : []
}
),
EffectsModule.forRoot([AppEffects]),
!environment.production ? StoreDevtoolsModule.instrument() : []
]
})
export class CoreModule {
}
更新:
我试过这个选项来注入环境,但我不能在 @NgModule 装饰器中使用 env 。
@NgModule({
imports: [CommonModule, HttpClientModule]
})
export class CoreModule {
static forRoot(environment:any):ModuleWithProviders {
return {
ngModule :CoreModule,
providers: [
{
provide : 'env',
useValue: environment
}
] } }}