繁体   English   中英

模块'...'导入的意外值'...'。 请添加@NgModule注释

[英]Unexpected value '…' imported by the module '…'. Please add a @NgModule annotation

使用Angular。

脚步:

  1. 克隆了这个简单的UI库,演示了当前的Angular包标准: https//github.com/jasonaden/simple-ui-lib

  2. 使用ng new testApp创建了一个新的测试应用程序

  3. npm link simple-ui-lib/dist

  4. npm link simple-ui-lib在testApp中npm link simple-ui-lib

  5. 将示例模块从simple-ui-lib导入testApp:

在app.module.ts文件中:

import { BoxModule } from 'simple-ui-lib';

...

@NgModule({
  ...
  imports: [
    ...
    BoxModule
  ]
})

Webpack编译得很好,但我在浏览器中收到此错误并且没有任何加载:

compiler.es5.js:1540未捕获错误:模块'AppModule'导入的意外值'BoxModule'。 请添加@NgModule注释。

我试过了:

  • 清除我的npm缓存
  • 重新安装所有节点模块
  • 强制所有Angular模块在两个项目中都是相同的版本
  • 检查两个项目中的所有Angular模块是否都是相同的版本
  • 检查两个项目中的TypeScript版本是否相同
  • 使用其他示例模块包而不是simple-ui-lib
  • 使用相同的设置创建了一个全新的项目
  • simple-ui-lib使用的rollup版本从1月份降级为版本

如果我控制台登录BoxModule ,我可以看到该值存在并且它似乎被注册为@NgModule,所以我对这个错误试图告诉我的内容感到困惑。

我在搜索中看到了这个错误,但看起来它们几乎总是由库和主机应用程序之间的版本不匹配引起的。 就我而言,版本是相同的。

版本:

  • TypeScript:2.2.0
  • @ angular / cli:1.0.4
  • @ angular / common:4.1.3

有任何想法吗?

更新:调查更多,看起来这是@ angular / cli本身的问题。 在这里打开一个错误: https//github.com/angular/angular-cli/issues/6429 ,但如果您有任何建议,请告诉我。

尝试使用es6编译器而不是es5。 我之前遇到过类似的问题,并且编译模式解决了这个问题

我还建议您使用最后的角度cli版本并升级到角度5

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM