Angular 2 rc3 – 未解决的依赖关系

我使用来自官方Angular2站点的packages.json,快速入门。 昨天工作正常,今天npm无法解决依赖问题。 我收到错误:

npm ERR! peerinvalid The package @angular/core@2.0.0-rc.3 does not satisfy its siblings' peerDependencies requirements! npm ERR! peerinvalid Peer @angular/common@2.0.0-rc.3 wants @angular/core@2.0.0-rc.3 npm ERR! peerinvalid Peer @angular/compiler@2.0.0-rc.3 wants @angular/core@2.0.0-rc.3 npm ERR! peerinvalid Peer @angular/forms@0.1.1 wants @angular/core@2.0.0-rc.3 npm ERR! peerinvalid Peer @angular/http@2.0.0-rc.3 wants @angular/core@2.0.0-rc.3 npm ERR! peerinvalid Peer @angular/platform-browser@2.0.0-rc.3 wants @angular/core@2.0.0-rc.3 npm ERR! peerinvalid Peer @angular/platform-browser-dynamic@2.0.0-rc.3 wants @angular/core@2.0.0-rc.3 npm ERR! peerinvalid Peer @angular/router@3.0.0-alpha.7 wants @angular/core@^2.0.0-rc.2 npm ERR! peerinvalid Peer @angular/router-deprecated@2.0.0-rc.2 wants @angular/core@^2.0.0-rc npm ERR! peerinvalid Peer @angular/upgrade@2.0.0-rc.3 wants @angular/core@2.0.0-rc.3 npm ERR! peerinvalid Peer angular2-in-memory-web-api@0.0.12 wants @angular/core@2.0.0-rc.2 

我的npm-debug: http : //qi-systems.pl/file/3dd29e55.zip

当你更新一些软件包并留下一些挂件时,会发生这种情况,这是RC.3中的RC.3


所以,而不是解决谁需要什么,

  • 我删除了node_modules
  • 从QuickStart复制package.json ,添加我的额外
  • 运行npm install

npm再次开心。

升级npm为我工作:

 npm install npm -g 

然后删除node_modules和

 npm install 

发生这种情况是因为所需的软件包版本不匹配。在快速启动文件夹中有一个名为package.json的文件。 这个package.json看起来像这样

  { "name": "angular2-quickstart", "version": "1.0.0", "description": "QuickStart package.json from the documentation,supplemented with testing support", "scripts": { "start": "tsc && concurrently \"tsc -w\" \"lite-server\" ", "docker-build": "docker build -t ng2-quickstart .", "docker": "npm run docker-build && docker run -it --rm -p 3000:3000 -p 3001:3001 ng2-quickstart", "pree2e": "npm run webdriver:update", "e2e": "tsc && concurrently \"http-server\" \"protractor protractor.config.js\"", "lint": "tslint ./app/**/*.ts -t verbose", "lite": "lite-server", "postinstall": "typings install", "test": "tsc && concurrently \"tsc -w\" \"karma start karma.conf.js\"", "tsc": "tsc", "tsc:w": "tsc -w", "typings": "typings", "webdriver:update": "webdriver-manager update" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { "@angular/common": "2.0.0-rc.2", "@angular/compiler": "2.0.0-rc.2", "@angular/core": "2.0.0-rc.2", "@angular/forms": "0.1.0", "@angular/http": "2.0.0-rc.2", "@angular/platform-browser": "2.0.0-rc.2", "@angular/platform-browser-dynamic": "2.0.0-rc.2", "@angular/router": "3.0.0-alpha.7", "@angular/router-deprecated": "2.0.0-rc.2", "@angular/upgrade": "2.0.0-rc.2", "systemjs": "0.19.27", "core-js": "^2.4.0", "reflect-metadata": "^0.1.3", "rxjs": "5.0.0-beta.6", "zone.js": "^0.6.12", "angular2-in-memory-web-api": "0.0.12", "bootstrap": "^3.3.6" }, "devDependencies": { "concurrently": "^2.0.0", "lite-server": "^2.2.0", "typescript": "^1.8.10", "typings": "^1.0.4", "canonical-path": "0.0.2", "http-server": "^0.9.0", "tslint": "^3.7.4", "lodash": "^4.11.1", "jasmine-core": "~2.4.1", "karma": "^0.13.22", "karma-chrome-launcher": "^0.2.3", "karma-cli": "^0.1.2", "karma-htmlfile-reporter": "^0.2.2", "karma-jasmine": "^0.3.8", "protractor": "^3.3.0", "rimraf": "^2.5.2" }, "repository": {} } 

现在,如果查看依赖部分内部,我们看到这样的东西

  dependencies": { "@angular/common": "2.0.0-rc.2", "@angular/compiler": "2.0.0-rc.2", "@angular/core": "2.0.0-rc.2", "@angular/forms": "0.1.0", "@angular/http": "2.0.0-rc.2", "@angular/platform-browser": "2.0.0-rc.2", "@angular/platform-browser-dynamic": "2.0.0-rc.2", "@angular/router": "3.0.0-alpha.7", "@angular/router-deprecated": "2.0.0-rc.2", "@angular/upgrade": "2.0.0-rc.2", } 

这是我们指定我们需要哪些软件包以及它的版本的地方。 如果要使用更高版本的软件包,请在版本号中使用^。之后将依赖关系设置为rc.2或更高版本

 dependencies": { "@angular/common": "^2.0.0-rc.2", "@angular/compiler": "^2.0.0-rc.2", "@angular/core": "^2.0.0-rc.2", "@angular/forms": "^0.1.0", "@angular/http": "^2.0.0-rc.2", "@angular/platform-browser": "^2.0.0-rc.2", "@angular/platform-browser-dynamic": "^2.0.0-rc.2", "@angular/router": "^3.0.0-alpha.7", "@angular/router-deprecated": "^2.0.0-rc.2", "@angular/upgrade": "^2.0.0-rc.2" } 

现在去shell并运行命令

  npm cache clean -f npm update -g 

如果可用,这将更新您的软件包到更高的版本。