@ ngrx / store不适用于ng serve -prod

时间:2018-06-13 14:23:43

标签: angular ngrx ngrx-store

NgRx在开发模式ng serve中提供服务效果很好,但是当以prod模式ng serve -prod或buid ng build --prod投放时,ngrx无效。

example app repo

1 个答案:

答案 0 :(得分:1)

根据NGRX州的文件。这是处理您所看到的AOT构建问题的正确格式。

“以前与AOT兼容,需要将函数传递给provideStore方法,将reducers组合成一个根reducer。在第二个参数中,initialState也作为对象提供给方法。”

“这已经简化为只需要一个由库组成的reducers映射。第二个参数是你提供initialState的配置对象。”

他们的示例如下所示:reducer index.ts

import { ActionReducerMap } from '@ngrx/store';

export interface State {
  auth: fromAuth.State;
  layout: fromLayout.State;
}

export const reducers: ActionReducerMap<State> = {
  auth: fromAuth.reducer,
  layout: fromLayout.reducer,
};

在您的app.module

import { StoreModule } from '@ngrx/store';
import { reducers } from './reducers';

@NgModule({
  imports: [
    StoreModule.forRoot(reducers, {
      initialState: {
        auth: {
          loggedIn: true,
        },
      },
    }),
  ],
})
export class AppModule {}

我认为您的代码缺少初始状态声明,允许AOT编译引擎正确识别您在构建时尝试定义的内容。