bower 软件包更新使应用程序崩溃 - 如何回滚

Posted

技术标签:

【中文标题】bower 软件包更新使应用程序崩溃 - 如何回滚【英文标题】:bower packages update crashed the app - how to roll back 【发布时间】:2015-02-23 10:35:41 【问题描述】:

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

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

原始包源位于 .gitignore 中,并使用 grunt 构建到一个文件中(所以我不能只恢复提交 - 因为 Bower 更新的包将在下一个版本中保持不变) 我找不到适合我的应用的旧包集(因为具有特定版本号的包源位于 .gitignoreUPD:找到内置文件中的版本,请参阅my answer 我找不到任何有关“bower 包历史记录”或“bower 撤消”的信息。

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

【问题讨论】:

我建议您尝试解决导致您的应用崩溃的问题。 @WayneEllery,你的观点是对的,我们应该做干净和理想的应用程序。但有时您没有时间调试大量遗留代码 - 而您只想返回到以前的状态,将重要 问题计划为将来作为不那么紧急 的问题。 我对 Bower 不是很熟悉。您是否尝试过安装旧版本的 Angular ***.com/questions/19030170/… @WayneEllery,感谢您的 cmets。我重新设计了这个问题以使其更加清晰和具体,请您支持它,或者指出我还应该做些什么来使它成为一个好问题?我是***的新手,希望我能尽快学会发布更好的问题:) 【参考方案1】:

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

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

    git checkout HEAD~1 有旧文件,它是用以前的包集构建的 grep(搜索)其中的软件包名称或许可 cmets bower install [PackageName]#=[OldWorkingPackageVersion](可以使用--save保存到bower.json) git checkout [BranchName] 让 HEAD 回来 进行构建(重新安装以前的软件包)

但是,我不确定这是否是一个好的解决方案,如果您对该主题进行任何形式的澄清,我将不胜感激。

【讨论】:

以上是关于bower 软件包更新使应用程序崩溃 - 如何回滚的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式使 Android 应用程序崩溃?

Firestore 更新使应用程序崩溃

如何部署 Bower 安装的软件包?

Chromecast 扩展控制器、曲目选择器对话框在 11.0.2 更新后使应用程序崩溃

如何安装并使用bower包依赖工具

什么是回滚操作