2016-12-29 108 views
0

我有一個Angular 2應用程序,我正在嘗試使用angular2-perfect-scrollbar。Angular 2 peer依賴關係要求

但我得到同伴依賴性錯誤。我搜索並嘗試降級rxjs,但仍然無效。

enter image description here

我的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" 
    } 
} 

回答

1

semantic versioning specification第9條展望:

的預發佈版本的一個優先級低於相關標準版。

我的理解是,預發佈版本的版本總是高於任何以前的主要版本,但始終低於同一主要版本的任何非預發佈版本。

例如,假設rxjs:v4.x.x < v5.0.0-beta.12 < v5.0.0

而這正是你的問題在於:您使用期望版本rxjs的這是由angular2完美,滾動預期的版本不兼容的@angular的版本。

有兩個解決辦法:

  • 忽略對相關性錯誤,並使用V5.0.0版本。 這可能不是一個好主意,但是您現在可能還有其他限制,使其值得。同級依賴關係的設計使你可以提供你自己的一個庫版本(而不是被其他庫所使用的版本限制),所以我認爲這不是太麻煩。只要確保你測試了從每個庫中使用的rxjs版本的穩定性。
  • 可能是更好的解決方案:更新您使用的@angular的版本。