Javascript 将AngularJS从1.5.0更新到1.5.8
我有以下bower.json文件:Javascript 将AngularJS从1.5.0更新到1.5.8,javascript,angularjs,bower,Javascript,Angularjs,Bower,我有以下bower.json文件: { "private": true, "dependencies": { "angular": "~1.5.0", "angular-mocks": "^1.5.7", "bootstrap": "^3.3.6", "bootstrap-rtl": "^3.4.0", "font-awesome": "^4.6.3", "moment": "^2.13.0", "angular-animate
{
"private": true,
"dependencies": {
"angular": "~1.5.0",
"angular-mocks": "^1.5.7",
"bootstrap": "^3.3.6",
"bootstrap-rtl": "^3.4.0",
"font-awesome": "^4.6.3",
"moment": "^2.13.0",
"angular-animate": "^1.5.6",
"angular-sanitize": "^1.5.6",
"angular-ui-router": "~0.2.15",
"angular-translate": "^2.11.0",
"angular-touch": "^1.5.7",
"angular-messages": "^1.5.6",
"angular-cookies": "^1.5.8",
"angular-ui-grid": "^3.1.1",
"angular-ui-sortable": "^0.14.2",
"angular-bootstrap-affix": "^0.2.2",
"theia-sticky-sidebar": "^1.4.0",
"angular-ui-router-title": "^0.0.4",
"angularjs-slider": "^4.0.2",
"angular-fcsa-number": "^1.5.3",
"angularPrint": "angular-print#^0.3.8",
"ng-virtual-keyboard": "^0.3.0",
"keyboard": "^1.26.1",
"angular-spinner": "^0.8.1",
"ng-ip-address": "^1.1.10",
"file-saver": "^1.3.2",
"ng-iban": "^1.1.0",
"pdfmake": "^0.1.20",
"ng-device-detector": "^3.0.1",
"checklist-model": "^0.10.0",
"angular-dynamic-number": "^2.1.1",
"ng-file-upload": "^12.2.13",
"ng-file-upload-shim": "^12.2.13",
"angular-ui-select": "^0.19.6",
"angular-dragula": "^1.2.8",
"angular-drag-and-drop-lists": "^2.0.0",
"angular-slick-carousel": "^3.1.7",
"angular-slick": "^0.2.1",
"drag-drop-webkit-mobile": "^1.2.0",
"iban": "^0.0.8",
"highcharts": "^5.0.9"
}
}
我只想将AngularJS更新到版本1.5.8
。什么是最好的方式做这个更新没有任何头痛?我试图安装bowerinstall angular#1.5.8--save
,但是当其他团队成员进入bower update
时,他们的整个项目中断了,因为更新了很多包。
如何只更新AngularJS有什么好主意吗?只在本地更新AngularJS包是可行的,但是当需要安装新项目并且需要安装依赖项时,您将以任何方式遇到这个问题。我建议您按照自己的意愿设置依赖项,并确保不允许与不希望安装的版本发生偏差。我将添加一些关于如何解释版本号的信息 使用
bowerupdate
将仅将该包更新为bower.json
假设版本号如下:1.5.0
。
每个数字都有一个平均值,1
是主要版本,5
是次要版本,0
是补丁号。像这样的major.minor.patch
插入符号(^
)表示不能更改主版本,但可以更改次版本和修补程序版本。因此,^1.5.0
的范围从1.5.0
到2.0.0
。因此,在您的原因中,因为您有^1.5.0
,Angular将更新为最新的非主要版本更改,即1.6.3
波浪号(~
)仅表示修补程序版本更改(如果版本中未指定修补程序,则表示次要版本)
请在此处阅读更多信息:仅在本地更新angular软件包是可行的,但是当需要安装新项目并且希望安装依赖项时,您将以任何方式遇到此问题。我建议您按照自己的意愿设置依赖项,并确保不允许与不希望安装的版本发生偏差。我将添加一些关于如何解释版本号的信息 使用
bowerupdate
将仅将该包更新为bower.json
假设版本号如下:1.5.0
。
每个数字都有一个平均值,1
是主要版本,5
是次要版本,0
是补丁号。像这样的major.minor.patch
插入符号(^
)表示不能更改主版本,但可以更改次版本和修补程序版本。因此,^1.5.0
的范围从1.5.0
到2.0.0
。因此,在您的原因中,因为您有^1.5.0
,Angular将更新为最新的非主要版本更改,即1.6.3
波浪号(~
)仅表示修补程序版本更改(如果版本中未指定修补程序,则表示次要版本)
请在此处阅读更多信息:尝试“angular”:“1.5.8”
,然后运行bower update
而不是bower update
。您可以在所有依赖项上切换到tilde~
,以确保只更新次要版本。请注意,角度模拟
与AngularJS版本不对应
用最简单的术语来说,波浪线匹配最新的次要版本
(中间的数字)~1.2.3将匹配所有1.2.x版本,但将
小姐1.3.0
另一方面,插入符号更轻松。它会将您更新到
最新的主要版本(第一个编号)^1.2.3将匹配
包括1.3.0在内的任何1.x.x版本,但将推迟到2.0.0
尝试“angular”:“1.5.8”
,然后运行bower update
而不是bower update
。您可以在所有依赖项上切换到tilde~
,以确保只更新次要版本。请注意,角度模拟
与AngularJS版本不对应
用最简单的术语来说,波浪线匹配最新的次要版本
(中间的数字)~1.2.3将匹配所有1.2.x版本,但将
小姐1.3.0
另一方面,插入符号更轻松。它会将您更新到
最新的主要版本(第一个编号)^1.2.3将匹配
包括1.3.0在内的任何1.x.x版本,但将推迟到2.0.0
当您使用只更新次要软件包版本的
^
时,它不应该中断。只需运行bowerupdate
,看看会发生什么。“应该”——这完全取决于软件包及其开发人员。请尝试更新bower.json
文件,从bower\u组件中删除angularjs,然后运行bower安装
。它应该只安装缺少的依赖项。@Linangular messages
,angular animation
和许多其他依赖项,这些依赖项更新为导致项目中断的1.6.x
版本。NPM
具有shrinkwrap
功能,允许您完全控制依赖项以及嵌套依赖项(第三方依赖项)。对于Bower
,有一种实现这种功能的方法。然而,一个快速的谷歌推出了大量的libs,声称能为Bower
实现同样的行为。我们在NPM
中实现了收缩包装,这些问题从那时起就没有出现过。仅供参考。尝试“angular”:“1.5.8”
并运行bower update
而不是bower update
。您可以在所有依赖项上切换到tilde~
,以确保仅更新次要版本。当您使用仅更新次要软件包版本的^
时,它不应中断。只需运行bowerupdate
,看看会发生什么。“应该”——这完全取决于软件包及其开发人员。请尝试更新bower.json
文件,从bower\u组件中删除angularjs,然后在中运行bower
{
"private": true,
"dependencies": {
"angular": "1.5.8",
"angular-mocks": "~1.5.7",
"bootstrap": "~3.3.6",
"bootstrap-rtl": "~3.4.0",
"font-awesome": "~4.6.3",
"moment": "~2.13.0",
"angular-animate": "~1.5.6",
"angular-sanitize": "~1.5.6",
"angular-ui-router": "~0.2.15",
"angular-translate": "~2.11.0",
"angular-touch": "~1.5.7",
"angular-messages": "~1.5.6",
"angular-cookies": "~1.5.8",
"angular-ui-grid": "~3.1.1",
"angular-ui-sortable": "~0.14.2",
"angular-bootstrap-affix": "~0.2.2",
"theia-sticky-sidebar": "~1.4.0",
"angular-ui-router-title": "~0.0.4",
"angularjs-slider": "~4.0.2",
"angular-fcsa-number": "~1.5.3",
"angularPrint": "angular-print#~0.3.8",
"ng-virtual-keyboard": "~0.3.0",
"keyboard": "~1.26.1",
"angular-spinner": "~0.8.1",
"ng-ip-address": "~1.1.10",
"file-saver": "~1.3.2",
"ng-iban": "~1.1.0",
"pdfmake": "~0.1.20",
"ng-device-detector": "~3.0.1",
"checklist-model": "~0.10.0",
"angular-dynamic-number": "~2.1.1",
"ng-file-upload": "~12.2.13",
"ng-file-upload-shim": "~12.2.13",
"angular-ui-select": "~0.19.6",
"angular-dragula": "~1.2.8",
"angular-drag-and-drop-lists": "~2.0.0",
"angular-slick-carousel": "~3.1.7",
"angular-slick": "~0.2.1",
"drag-drop-webkit-mobile": "~1.2.0",
"iban": "~0.0.8",
"highcharts": "~5.0.9"
}
}