【问题标题】:why doesn't bower update angular upgrade my angular?为什么凉亭不更新角度升级我的角度?
【发布时间】:2014-01-09 19:44:32
【问题描述】:

我有 angular 1.2.3,我想升级到 1.2.7

> cat bower.json
...
  "dependencies": {
    "json3": "~3.2.4",
    "jquery": "~1.9.1",
    "es5-shim": "~2.0.8",
    "toastr": "~2.0.1",
    "angular-ui-tinymce": "latest",
    "underscore": "~1.5.2",
    "underscore.string": "~2.3.3",
    "angular-ui-utils": "~0.0.4",
    "angular-dragdrop": "~1.0.5",
    "angular-cookies": "~1.2.3",
    "angular-animate": "~1.2.3",
    "angular-resource": "~1.2.3",
    "angular": "~1.2.3"
  },
  "devDependencies": {
    "angular-mocks": "~1.2.3",
    "bootstrap": "~3.0.1",
    "font-awesome": "~4.0.3",
    "angular-bootstrap-affix": "~0.3.0"
  }
...

我什至不知道下面的输出是什么意思....,它在做什么?

> bower update angular
bower angular#~1.x              cached git://github.com/angular/bower-angular.git#1.2.7
bower angular#~1.x            validate 1.2.7 against git://github.com/angular/bower-angular.git#~1.x
bower angular#>= 1.0.2          cached git://github.com/angular/bower-angular.git#1.2.7
bower angular#>= 1.0.2        validate 1.2.7 against git://github.com/angular/bower-angular.git#>= 1.0.2
bower angular#1.2.3             cached git://github.com/angular/bower-angular.git#1.2.3
bower angular#1.2.3           validate 1.2.3 against git://github.com/angular/bower-angular.git#1.2.3
bower angular#~1.2.3            cached git://github.com/angular/bower-angular.git#1.2.7
bower angular#~1.2.3          validate 1.2.7 against git://github.com/angular/bower-angular.git#~1.2.3
bower angular#~1.x                 new version for git://github.com/angular/bower-angular.git#~1.x
bower angular#~1.x             resolve git://github.com/angular/bower-angular.git#~1.x
bower angular#>= 1.0.2             new version for git://github.com/angular/bower-angular.git#>= 1.0.2
bower angular#>= 1.0.2         resolve git://github.com/angular/bower-angular.git#>= 1.0.2
bower angular#~1.2.3               new version for git://github.com/angular/bower-angular.git#~1.2.3
bower angular#~1.2.3           resolve git://github.com/angular/bower-angular.git#~1.2.3
bower angular#~1.x            download https://github.com/angular/bower-angular/archive/v1.2.8-build.2095+sha.28fc80b.tar.gz
bower angular#>= 1.0.2        download https://github.com/angular/bower-angular/archive/v1.2.8-build.2095+sha.28fc80b.tar.gz
bower angular#~1.2.3          download https://github.com/angular/bower-angular/archive/v1.2.8-build.2095+sha.28fc80b.tar.gz
bower angular#>= 1.0.2         extract archive.tar.gz
bower angular#>= 1.0.2        resolved git://github.com/angular/bower-angular.git#1.2.8-build.2095+sha.28fc80b
bower angular#~1.x             extract archive.tar.gz
bower angular#~1.x            resolved git://github.com/angular/bower-angular.git#1.2.8-build.2095+sha.28fc80b
bower angular#~1.2.3           extract archive.tar.gz
bower angular#~1.2.3          resolved git://github.com/angular/bower-angular.git#1.2.8-build.2095+sha.28fc80b

什么都没有改变?我还在 1.2.3 上

> git diff
diff --git a/ngapp/app/bower_components/angular/.bower.json b/ngapp/app/bower_components/angular/.bower.json
index dc9d0b6..842a1f3 100644
--- a/ngapp/app/bower_components/angular/.bower.json
+++ b/ngapp/app/bower_components/angular/.bower.json
@@ -11,6 +11,6 @@
     "commit": "b112b099971f4cf016023bdeb00b267e9bf6dfb5"
   },
   "_source": "git://github.com/angular/bower-angular.git",
-  "_target": "~1.2.3",
+  "_target": "1.2.3",
   "_originalSource": "angular"
 }

> bower --version
1.2.8

我错过了什么吗?

> bower info angular
.... shows all versions including 1.2.7 and 1.2.8-builds as well

【问题讨论】:

    标签: angularjs bower


    【解决方案1】:

    我认为您的依赖项会阻止您单独更新 Angular。例如,查看bower_components/angular-route/bower.json。您将看到一个特定版本的 Angular 列为依赖项(“1.2.3”),而不是 ~/“合理关闭”说明符“(“~1.2.3”)。所以你试图只更新 angular,但是凉亭可以带您的角度最远的是当前版本,因为您有其他完全依赖于该版本的软件包。

    如果您这样做bower update,那么 bower 将有机会更新您的所有软件包,包括 angular-route 和其他阻碍 angular 的软件包。这些包的更新现在将允许 bower 在满足依赖关系的同时更新 angular。另外,我认为如果您根据特定的角度版本识别所有这些软件包(您可以看到与 bower list 的依赖关系)并将它们作为参数传递给 bower update angular angular-mocks angular-resource angular-route angular-sanitize...,那么 bower 也可以执行更新。

    【讨论】:

      【解决方案2】:

      我认为问题在于这个

      "angular": "~1.2.3" 
      

      https://github.com/isaacs/node-semver/

      "Reasonably close to 1.2.3". 
      

      所以你应该用

      来改变它
      "angular": "1.2.7" 
      

      更新: (在评论中,但我认为最好指出来)

      请注意,您不能将包名称传递给更新命令,而只能更新单个包:它仍会更新所有包。您可以通过运行 bower install 获取单个软件包的最新版本;它只会覆盖您当前拥有的版本

      【讨论】:

      • 我没有关注。所以我需要将我的 bower.json 修改为 1.2.7?然后做凉亭安装?你不能从命令行升级包?
      • @Whistler 我认为〜意味着自动升级,直到当前版本为 1.3。你能解释一下吗?谢谢!
      • net.tutsplus.com/tutorials/tools-and-tips/… bower update 请注意,您不能将包名称传递给更新命令,而只能更新单个包:它仍会更新所有包。您可以通过运行 bower install ; 来获取单个包的最新版本;它只会覆盖您当前拥有的版本。
      • 这个用法我还是不太清楚。在我运行bower update 之后,git diff 显示没有触及 bower_components/angular 文件夹,但 bower_components/bootstrap 已完全检修。然后我运行bower install angular --save,它会提示我选择不同的版本,所以最后我可以在安装过程中选择 1.2.7,这似乎会更改 bower_components 中的文件。那么为什么行为不一致。当我运行 bower update 时,它​​改变了我所有的引导文件,并且没有改变我的角度文件。
      • 除非你是说:在 bower.json 中指定特定版本,在运行 bower update 时将包锁定到这些版本,并在版本中指定波浪号 ~ 允许 bower update 将包升级到最近bower.json 所描述的接受版本...所以〜3.0.1 允许爬升到 3.0.3,但 1.2.3 的硬版本不会带你到 1.2.7 甚至问你。
      猜你喜欢
      • 2015-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多