Я изо всех сил пытаюсь понять, почему я не могу зарегистрировать свои эффекты, используя NgRx версии 7.4.0. Я полностью удалил свой класс эффектов в поисках решения этой проблемы, но все еще получаю следующую ошибку:
main.79a79285b0ad5f8b4e8a.js:33529 Uncaught TypeError: ctor is not a constructor
at _createClass (main.79a79285b0ad5f8b4e8a.js:33529)
at _createProviderInstance (main.79a79285b0ad5f8b4e8a.js:33501)
at initNgModule (main.79a79285b0ad5f8b4e8a.js:33432)
at new NgModuleRef_ (main.79a79285b0ad5f8b4e8a.js:34161)
at Object.createNgModuleRef (main.79a79285b0ad5f8b4e8a.js:34150)
at NgModuleFactory_.push../node_modules/@angular/core/fesm5/core.js.NgModuleFactory_.create (main.79a79285b0ad5f8b4e8a.js:36687)
at main.79a79285b0ad5f8b4e8a.js:30069
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (polyfills.f00ff83aa2c2b28f8bcd.js:7646)
at Object.onInvoke (main.79a79285b0ad5f8b4e8a.js:29604)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (polyfills.f00ff83aa2c2b28f8bcd.js:7645)
Определение модуля выглядит следующим образом:
@NgModule({
imports: [
CommonModule,
StoreModule.forRoot({settings: settingsReducer}),
EffectsModule.forRoot([SettingsEffects])
],
declarations: [/*..other declarations..*/],
exports: [/*..other exports..*/],
providers: [/*..other providers..*/],
})
export class MyModule {
}
зависимости в моем package.json
выглядят так:
"dependencies": {
"@ngrx/effects": "7.4.0",
"@ngrx/router-store": "7.4.0",
"@ngrx/store": "7.4.0",
"@ngrx/store-devtools": "7.4.0",
"ng2-translate": "5.0.0"
},
Мои зависимости dev выглядят так:
"devDependencies": {
"@angular/common": "7.2.15",
"@angular/compiler": "7.2.15",
"@angular/compiler-cli": "7.2.15",
"@angular/core": "7.2.15",
"@angular/platform-browser": "7.2.15",
"@angular/platform-browser-dynamic": "7.2.15",
"@angular/router": "7.2.15",
"@compodoc/compodoc": "1.0.9",
"@types/jasmine": "2.5.54",
"@types/jest": "19.2.4",
"@types/node": "7.0.43",
"awesome-typescript-loader": "3.2.3",
"babel-preset-env": "1.6.0",
"codelyzer": "4.5.0",
"core-js": "2.6.10",
"del": "2.2.2",
"gulp": "3.9.1",
"gulp-header": "1.8.9",
"gulp-rename": "1.2.2",
"gulp-replace": "0.6.1",
"gulp-rollup": "2.14.0",
"gulp-shell": "0.6.3",
"inquirer": "3.2.2",
"jasmine-marbles": "0.6.0",
"jest": "23.6.0",
"jest-preset-angular": "6.0.2",
"node-sass": "4.5.3",
"node-sass-tilde-importer": "1.0.0",
"node-watch": "0.5.5",
"rollup": "0.42.0",
"run-sequence": "1.2.2",
"rxjs": "6.5.3",
"rxjs-compat": "6.5.3",
"ts-node": "7.0.1",
"tslint": "5.20.0",
"typescript": "3.2.4",
"zone.js": "0.8.17"
}
Класс SettingsEffects
- который я удалил в случае возникновения проблемы лежит в самом классе эффектов - выглядит следующим образом:
@Injectable()
export class SettingsEffects {
constructor(
private actions$: Actions
) {
}
}
В своем исходном состоянии класс SettingsEffects
выдает ту же ошибку.
Если удалить эту строку:
EffectsModule.forRoot([SettingsEffects])
из импорта, приложение успешно запускается; но, конечно, эффекты не работают, что бесполезно.
Я искал во всемирной сети, но нет никаких подсказок, почему это происходит. Этот модуль находится в библиотеке, импортированной основным GUI приложения, и мы тщательно следим за тем, чтобы не было конфликтов версий пакетов: все используют версии 7.4.0 модулей хранилища.
Пожалуйста помоги! Я потянул меня за волосы на целый день сейчас!