我正在尝试使用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机器的完整安装日志:`
答案 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安装时,将检查此文件以查看应该下载的版本。