Angular2:ERROR in Error遇到静态解析符号值

Zan*_*cat 6 webpack angular-cli angular

我使用angular/cli 1.3.2和Angular 4.4.0.当我使用npm模块时angular-split@0.2.2,在编译期间我遇到了

ERROR in Error遇到静态解析符号值.不支持函数调用.考虑使用对导出函数的引用替换函数或lambda(原始.ts文件中的位置194:50),在路径到项目/ node_modules/angular-split/node_modules/@ angular/core/core中解析符号NgModule .d.ts,在路径到项目/ node_modules/angular-split/dist/angularSplit.module.d.ts中解析符号AngularSplitModule,在路径到项目/ node_modules/angular-split/dist/angularSplit中解析符号AngularSplitModule .module.d.ts

在文件angularSplit.module.d.ts中只有一行代码:

export declare class AngularSplitModule {}

但是,可以通过保存任何文件并触发重新编译(奇怪)来"解决"此错误.

然后,当我localhost:4200在浏览器中打开时,我会看到另一个错误:

compiler.es5.js:1694 Uncaught Error: Unexpected value 'AngularSplitModule' imported by the module 'AppModule'. Please add a @NgModule annotation.

从github和stackoverflow我发现了一些类似的问题,但没有人能说出原因.

这发生在我更新node/angular/angular-cli之后,但是在我回滚后它仍然无法正常工作.

有谁知道为什么会这样?

Zan*_*cat 11

好吧,经过几个小时的阅读后,我发现了一个有用的解决方案 https://github.com/angular/angular-cli/issues/3854#issuecomment-274344771

具体来说,添加 paths: { "@angular/*": ["../node_modules/@angular/*"] }tsconfig.json文件,"compilerOptions"选项

它解决了我的问题但仍想知道原因.