Windows 10上的Angular 2 UNMET PEER依赖性错误

时间:2017-05-16 12:09:27

标签: node.js angular

我正在尝试使用package.json在Windows 10计算机上运行我的Web应用程序(如下所示)。我有Node版本5.6.0和Npm版本3.6.0。但不幸的是,它总是抛出一个UNMET对等依赖性错误,并且当我运行我的项目(由Laravel PHP提供支持)时,AngularLoader层次结构的以下文件无法加载:shim.js,zone.js,reflect.js,system.js。相反,相同的配置在Linux开发机器上运行绝对平滑。任何在Windows机器上安装相同帮助的帮助都将受到高度赞赏,因为我是Angular 2 Domain的新手。

我已经尝试过以下方法: rm -rf node_modules/ npm cache clean npm install

还安装了npm install angular/core angular/common angular-forms

P:S:升级到Angular 4不是一种选择。遗憾!!!

这是我的package.json:

{
  "private": true,
  "scripts": {
    "prod": "gulp --production",
    "dev": "gulp watch"
  },
  "devDependencies": {
    "bootstrap-sass": "^3.3.7",
    "gulp": "^3.9.1",
    "jquery": "^3.1.0",
    "laravel-elixir": "^6.0.0-11",
    "laravel-elixir-vue-2": "^0.2.0",
    "laravel-elixir-webpack-official": "^1.0.2",
    "lodash": "^4.16.2",
    "vue": "^2.0.1",
    "vue-resource": "^1.0.3"
  },
  "dependencies": {
    "@angular/common": "^2.1.2",
    "@angular/core": "^2.1.2",
    "@angular/forms": "^2.1.2",
    "@ng-bootstrap/ng-bootstrap": "^1.0.0-alpha.11",
    "@types/jquery": "^2.0.41",
    "jquery": "^3.2.1",
    "ng2-ui": "^0.11.5",
    "rxjs": "^5.0.0-beta.12",
    "zone.js": "^0.6.26"
  }
}

以下是Windows机器的完整安装日志:`

Link to Error Doc

1 个答案:

答案 0 :(得分:0)

如果您使用依赖Angular 4的库,则可能会出现这些错误。

以ng-bootstrap 1.0.0-alpha.25为例;如果您选中the CHANGELOG.md file;

BREAKING CHANGES
ng-bootstrap requires a minimal version of Angular 4.0.3

那么为什么会这样呢?简短的回答;你应该摆脱版本标签^~,因为这是你的问题:

"^1.0.0-alpha.11"允许使用版本>= 1.0.0-alpha.11 < 2.0.0

改为使用"@ng-bootstrap/ng-bootstrap": "1.0.0-alpha.11"

我建议你阅读npm semver

有些人可能会说你不必完全放弃它,但我已经有了相当多的问题。并非所有开发人员都理解它的语义版本。此外,将这些通配符与alpha和beta包一起使用是一个非常糟糕的主意,因为它们默认情况下会发生重大更改。

如何解决此问题?

你说你有一台Linux开发机器,你可以在这里建立这个应用程序,没有任何问题。尝试在该计算机上执行npm shrinkwrap。这将编写一个npm-shrinkwrap.json文件,其中包含当时所有使用过的库版本。然后,在Windows 10计算机上执行npm安装时,将检查此文件以查看应该下载的版本。