0

我有一个 Angular 2 应用程序,我正在尝试使用 angular2-perfect-scrollbar。

但我收到对等依赖错误。我用谷歌搜索并试图降级 rxjs 但仍然无法正常工作。

在此处输入图像描述

我的 package.json 文件如下所示:

  "license": "",
  "dependencies": {
    "@angular/common": "~2.1.2",
    "@angular/compiler": "~2.1.2",
    "@angular/core": "~2.1.2",
    "@angular/forms": "~2.1.2",
    "@angular/http": "~2.1.2",
    "@angular/platform-browser": "~2.1.2",
    "@angular/platform-browser-dynamic": "~2.1.2",
    "@angular/router": "~3.1.2",
    "@ngstarter/systemjs-extension": "1.0.0-rc.4",
    "@types/core-js": "^0.9.34",
    "@types/jasmine": "^2.5.36",
    "@types/lodash": "^4.14.37",
    "@types/selenium-webdriver": "^2.44.28",
    "bootstrap": "^3.3.7",
    "chart.js": "^2.4.0",
    "codelyzer": "1.0.0-beta.3",
    "core-js": "^2.4.1",
    "del": "~2.2.2",
    "font-awesome": "^4.7.0",
    "glob": "^7.0.6",
    "gulp": "^3.9.1",
    "gulp-cssnano": "^2.1.2",
    "gulp-if": "~2.0.1",
    "gulp-less": "^3.3.0",
    "gulp-protractor": "^3.0.0",
    "gulp-rev": "^7.1.2",
    "gulp-rev-replace": "^0.4.3",
    "gulp-sourcemaps": "^2.2.0",
    "gulp-template": "^4.0.0",
    "gulp-tslint": "6.1.2",
    "gulp-typescript": "~3.1.2",
    "gulp-uglify": "~2.0.0",
    "gulp-useref": "~3.1.2",
    "jasmine-core": "~2.5.0",
    "jquery": "^3.1.0",
    "karma": "~1.3.0",
    "karma-coverage": "~1.1.1",
    "karma-ie-launcher": "^1.0.0",
    "karma-jasmine": "~1.0.2",
    "karma-sourcemap-loader": "^0.3.7",
    "lodash": "^4.15.0",
    "ng2-charts": "^1.4.4",
    "remap-istanbul": "~0.6.4",
    "require-dir": "~0.3.0",
    "run-sequence": "~1.2.2",
    "rxjs": "5.0.0-beta.12",
    "systemjs": "^0.19.40",
    "tslint": "~3.15.1",
    "typescript": "^2.0.10",
    "underscore": "^1.8.3",
    "yargs": "^6.3.0",
    "zone.js": "^0.6.26"
  },
  "devDependencies": {
    "browser-sync": "^2.17.5",
    "connect-history-api-fallback": "^1.2.0",
    "gulp-util": "^3.0.7",
    "gulp-war": "^0.1.4",
    "gulp-zip": "^3.2.0",
    "ts-node": "^1.6.1"
  }
}
4

1 回答 1

1

查看语义版本控制规范的第 9 条:

预发布版本的优先级低于相关的普通版本。

我在这里的理解是,预发布版本的版本总是高于任何以前的主要版本,但总是低于同一主要版本的任何非预发布版本。

例如,给定 rxjs:v4.x.x < v5.0.0-beta.12 < v5.0.0

这就是您的问题所在:您使用的@angular 版本期望与angular2-perfect-scrollbar 期望的版本不兼容的rxjs 版本。

有两种解决方案:

  • 忽略对等依赖错误,使用 v5.0.0 版本。这可能不是一个好主意,但是您可能有其他限制,现在值得这样做。对等依赖项的设计目的是让您可以提供自己的库版本(而不是被限制为另一个库使用的版本),所以我认为这不会有太大问题。只要确保你测试你从每个库中使用的东西对于 rxjs 的版本是稳定的。
  • 可能是更好的解决方案:更新您正在使用的 @angular 版本。
于 2016-12-29T07:09:36.573 回答