@ ngrx / store Ошибка при производственной сборке: ошибка при компиляции шаблона «Store» - PullRequest
0 голосов
/ 31 декабря 2018

Ошибка:

ERROR in ../@ngrx/store/store.ts(10,2): Error during template compile of 'Store'
Could not resolve @angular/core relative to /home/teebo/Development/node_modules/@ngrx/store/store.d.ts..

Я на Angular v6 и @ ngrx / store 6.1.0.

Я экспортирую некоторые редукторы формы . /redurs / ui / index.ts как

export const uiReducers = combineReducers({
  formFields: fromFormFieldsReducer.reducer,
  forms: fromFormReducers.reducer,
  formGroups: fromFormGroupReducer.reducer
});

А затем в appState.reducers.ts У меня есть экспорт следующим образом

import { ActionReducerMap } from '@ngrx/store';
import { uiReducers } from './reducers/ui';
import { UIState } from './models/ui.model';
import { InjectionToken } from '@angular/core';

export interface AppState {
  ui: UIState;
}

export const reducerToken = new 
 InjectionToken<ActionReducerMap<AppState>>('Reducers');

 export function getReducers() {
   return { ui: uiReducers };
 }

 export const reducerProvider = [
   { provide: reducerToken, useFactory: getReducers }
 ];

А потом в моем app.module.ts У меня есть следующее

...
import { StoreModule, MetaReducer } from '@ngrx/store';
import { reducerToken, reducerProvider } from 
 './state_store/appState.reducers'; 
...
imports: [..., StoreModule.forRoot(reducerToken),...]
...
providers: [..., reducerProvider, ...]                             

Но я запускаю следующий скрипт npm

"build:ssr": "npm run build:client-and-server-bundles && npm run 
 webpack:server",

Я получаю сообщение об ошибке

ERROR in ../@ngrx/store/store.ts(10,2): Error during template compile of 'Store'
Could not resolve @angular/core relative to /home/teebo/Development/node_modules/@ngrx/store/store.d.ts..

Любая помощь в этом вопросе будет высоко ценится, спасибо.Я следил за тем, как я делаю темы на github, чтобы отследить проблему, подобную этой one

Как это сделать с ActionReducerMap без провайдера, я получаю

ERROR in app/app.module.ts(64,25): Error during template compile of 
'AppModule'
 Function calls are not supported in decorators but 'combineReducers' 
 was called in 'appStateReducers'
 'appStateReducers' references 'uiReducers' at 
 app/state_store/appState.reducers.ts(9,67)
  'uiReducers' calls 'combineReducers' at 
app/state_store/reducers/ui/index.ts(8,27).

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Я нашел решение проблемы, указав в tsconfig.app.json путь к node_modules, сборка с --prod теперь работает.Внесенные мною изменения следующие в опциях компилятора

"compilerOptions": {
  "baseUrl": ".",
  "paths": { "@angular/*": ["../node_modules/@angular/*"] },
 }
0 голосов
/ 31 декабря 2018

Не вызывайте вручную функцию combReducers.Как уже упоминалось здесь , вы можете попробовать и использовать actionReducerMap для ваших редукторов и передать его StoreModule.forRoot(reducers)

См. Эту ссылку для реализации

...