元数据版本不匹配Angular 4 @ ng-bootstrap

时间:2018-01-19 00:36:47

标签: javascript node.js angular twitter-bootstrap

我正在开发Angular bootstrap模块。当我使用以下命令npm install --save @ng-bootstrap/ng-bootstrap安装模块并将模块导入主应用程序模块时。然后我重新运行以下错误。

ERROR in Error: Metadata version mismatch for module F:/nodejs/angular4/mybootst
rap3/node_modules/@ng-bootstrap/ng-bootstrap/index.d.ts, found version 4, expect
ed 3, resolving symbol AppModule in F:/nodejs/angular4/mybootstrap3/src/app/app.
module.ts, resolving symbol AppModule in F:/nodejs/angular4/mybootstrap3/src/app
/app.module.ts

这是我的角度版

@angular/cli: 1.4.4
node: 6.11.2
os: win32 ia32
@angular/animations: 4.4.6
@angular/common: 4.4.6
@angular/compiler: 4.4.6
@angular/core: 4.4.6
@angular/forms: 4.4.6
@angular/http: 4.4.6
@angular/platform-browser: 4.4.6
@angular/platform-browser-dynamic: 4.4.6
@angular/router: 4.4.6
@angular/cli: 1.4.4
@angular/compiler-cli: 4.4.6
@angular/language-service: 4.4.6
typescript: 2.3.4

问题

  • 必须安装角度最新版本吗?。
  • 如果我安装最新版本,我可以运行我的Angular 4项目吗?
  • 为什么我会收到此错误?

2 个答案:

答案 0 :(得分:2)

该错误是由于安装的ng-bootstrap模块版本的元数据针对较高版本的Angular而引起的。要解决此问题,

通过运行

找出当前安装的ng-bootstrap版本
npm list ng-bootstrap

运行以下命令以查看ng-bootstrap节点模块的所有可用版本。

npm show ng-bootstrap@* version

选择一个低于当前安装版本的版本,然后安装

npm install ng-bootstrap@x.y.z

* x.y.z是指版本号。

立即尝试npm start,看看它是否有效。

如果没有,请还原到另一个更低版本,然后重试上述npm install步骤。

一旦工作 - 使用解决问题的版本号更新package.json,以便将来再次出现此问题。如果版本没有,请说。 1.3.0解决了这个问题,然后用。更新包json。

"@ng-bootstrap/ng-bootstrap": "1.3.0"

删除插入符号(^)(如果存在),以防止自动选择可用的最高模块版本。

答案 1 :(得分:0)

这是因为@ ng-bootstrap的最新版本有问题。

我通过改变

解决了这个问题
 "@ng-bootstrap/ng-bootstrap": "^1.0.0-beta.5",

在package.json中

 "@ng-bootstrap/ng-bootstrap": "1.0.0-beta.5",

您需要在package.json中指定正确的版本,否则它将获取最新的ng-bootstrap,该问题在使用angular 4时有问题