使用Angular .
Steps:
-
克隆了这个简单的UI库,演示了当前的Angular包标准:https://github.com/jasonaden/simple-ui-lib
-
使用
ng new testApp
创建了一个新的测试应用 -
npm link
simple-ui-lib/dist
testApp中的
-
npm link simple-ui-lib
-
将示例模块从simple-ui-lib导入testApp:
在app.module.ts文件中:
import { BoxModule } from 'simple-ui-lib';
...
@NgModule({
...
imports: [
...
BoxModule
]
})
Webpack编译得很好,但我在浏览器中收到此错误并且没有任何加载:
compiler.es5.js:1540未捕获错误:模块'AppModule'导入的意外值'BoxModule' . 请添加@NgModule注释 .
I've tried:
-
清除我的npm缓存
-
重新安装所有节点模块
-
强制所有Angular模块在两个项目中都是相同的版本
-
检查两个项目中的所有Angular模块是否为同一版本
-
检查两个项目中的TypeScript版本是否相同
-
使用其他样本模块包而不是
simple-ui-lib
-
使用相同的设置创建了一个全新的项目
-
将
simple-ui-lib
中使用的rollup
版本从1月份降级为版本
如果我控制台登录 BoxModule
,我可以看到该值存在并且它似乎被注册为@NgModule,所以我对这个错误试图告诉我的内容感到困惑 .
我在搜索中看到了这个错误,但看起来它们几乎总是由库和主机应用程序之间的版本不匹配引起的 . 就我而言,版本是相同的 .
Versions:
-
TypeScript:2.2.0
-
@ angular / cli:1.0.4
-
@ angular / common:4.1.3
有任何想法吗?
更新:调查更多,看起来这是@ angular / cli本身的问题 . 在这里打开一个错误:https://github.com/angular/angular-cli/issues/6429,但如果您有任何建议,请告诉我 .
1 回答
尝试使用es6编译器而不是es5 . 我之前遇到过类似的问题,并且编译模式解决了这个问题
我还建议您使用最后的角度cli版本并升级到角度5