bower包更新崩溃了应用程序 - 如何回滚

时间:2014-12-25 23:46:47

标签: angularjs git gruntjs bower

我已使用bower为我的应用安装了另一个附加模块。由于bower.json中的项目依赖性不是很严格,并且自上次更新以来已经过去了很多时间,因此bower将许多软件包更新为更新的软件包。有很多变化,包之间的不兼容是导致主要应用程序崩溃的原因。

我从来没有要求过这个问题,也不是完全升级和调试的好时机。我怎样才能回滚到以前的包裹?

  • 原始软件包源位于.gitignore并使用grunt构建到一个文件中(因此我不能只恢复提交 - 因为bower续订的软件包在下一个版本中将是相同的)< / LI>
  • 我无法找到适用于我的应用的旧套餐(因为具有特定版本号的套餐来源位于.gitignore UPD :在内置文件中找到版本,请参阅my answer
  • 我找不到任何关于“凉亭包历史”或“凉亭撤消”的信息。

UPD :我为自己解决了这个问题,并在answer中描述了解决方案。但我真的不确定这是一个好方法,并会对任何关于这个主题的指导感激不尽。

1 个答案:

答案 0 :(得分:1)

我通过挖掘bower显示的不兼容性并找到妥协包集来解决自己的问题。主要问题介于某些软件包询问的最新angular和仅适用于旧版本的angular-ui-bootsrap之间。其他最新的软件包也存在一些问题,我将其降级并稍后解决。所以我使用bower install [PackageName]#=[SpecificPackageVersion](可以使用--save将其保存到bower.json)以手动设置折衷包。

目前我意识到,在之前的构建文件提交中,许可注释块中存在旧的包版本,所以为了拥有旧的工作包,我可以:

  1. git checkout HEAD~1拥有旧文件,该文件是使用以前的软件包集
  2. 构建的
  3. grep(搜索)包名称或许可证注释
  4. bower install [PackageName]#=[OldWorkingPackageVersion](可以使用--save将其保存到bower.json)
  5. git checkout [BranchName]让HEAD回来
  6. 进行构建(再次安装以前的软件包)
  7. 但是,我不确定这是一个很好的解决方案,并且会对任何有关该主题的澄清表示感激。