无法使用ngrx effects在生产环境下运行ng build

5
我正在使用Angular 5。应用程序可以通过ng buildng serve运行。但是,当使用--prod标志时,两者都会失败。以下是错误信息:

错误:NgModule“ɵd in /Users/me/project/node_modules/@ngrx/effects/effects.d.ts”的提供程序无效 - 只允许Provider和Type的实例,而得到了:[?null?]

有人能给一些提示吗?

1个回答

4

这很荒谬。这个问题是因为ng-cli在ES6默认导入方面表现不佳。

在我的component.module.ts文件中,我按照下面的方式引入了component.effects.ts。

import {EffectsModule} from '@ngrx/effects';
import MyEffects from '@app/component/state/component.effects';

@NgModule({
    imports: [
        ...
        EffectsModule.forFeature([ MyEffects ])
    ],
    ...
})

export class QueryModule {}

错误出在 import MyEffects from 上。我将其更改为 import {MyEffects} from,并且在我的 component.effects.ts 中,我用命名导入取代了默认导入。

如果我这样做,构建会失败。你为什么要加上@app? - Chris Tarasovs
@app 是 Angular 中缩短导入方式的一种方法。你必须在根目录下的 tsconfig.json 文件中指定它。https://angularfirebase.com/lessons/shorten-typescript-imports-in-an-angular-project/ - TrongBang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接