将ExtJS应用程序从4.1.2升级到6.x.

时间:2016-09-30 03:24:17

标签: javascript extjs

我正在获取用ExtJS 4.1.2编写的现有应用程序。它是一个非常大的代码库。 4.1.2应用程序是在没有CMD的情况下构建的 - 源代码直接添加到index.html。

如果没有太多的ExtJS背景,我有以下两个问题:

1)首先升级到5.x然后从5.x升级到6.x是否有意义?或者从4.1.2直接转到6.x是否安全?

2)是否应该创建一个新项目并手动复制,或者我可以只更新源,理论上,指向新的extjs lib,然后返回修复所有破坏或不破坏的客户端代码更长兼容?

我没有多少关注ExtJS的历史,所以我不确定升级两个主要版本是否可行于此框架。

如果在现有应用中没有使用CMD,最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

我在生产中使用Ext.js,我们目前正在进行类似的升级。我们在4.1.1。这就是我们所做的。

  

1)首先升级到5.x然后从5.x升级到6.x是否有意义?或者从4.1.2直接转到6.x是否安全?

我们选择升级到5.x然后升级到6.x.这背后的原因是因为6.x不被认为是稳定的(当时),我们可以处理更少的错误。最大的跳跃将从4.1.2变为5.x.从5转到6很容易。 5.x包含API的新功能和更改。 6.x主要是幕后技术债务合并了sencha touch和桌面,这是非常重要的,因为现在你可以有一个移动和桌面应用程序。您可以直接转到6,因为它比测试版更稳定。

  

2)是否应该创建一个新项目并手动复制,或者我可以只更新源,理论上,指向新的extjs lib,然后返回修复所有破坏或不再兼容的客户端代码?< / p>

我们选择了第二个。我们替换了整个extjs lib,并测试了所有客户端代码,然后修复了它。它已经非常顺利了。我们确实有使用sencha架构师的好处。 Sencha架构师保持javascript代码是json元数据文件。当您想要升级时,它可以进行自动检查。我们在建筑师项目之外还有很多与您所拥有的代码类似的代码,并且只有几个问题。这是50-50分裂。

评估升级可行性的一种方法是将代码与Ext.Js紧密交织在一起。我们让开发人员编写了一个迷你框架,扩展了核心Ext类并覆盖了很多商店和视图的核心方法。它还有一个复杂的插件框架,触及Ext.Js内部。覆盖这些方法会使代码在升级期间非常脆弱。可能60%的努力都用于修复该框架。还有其他页面与Ext.Js紧密交织在一起,也花了很多精力进行迁移。代码更简单,例如它只是创建了一个带有一些监听器的小部件,不需要很多更改。

据我所知,Sencha CMD是该框架的官方打包器,缩小器和依赖管理器。当您使用Sencha CMD升级时,它只是替换了主库,并且它对修复实际的javascript没有太大帮助。 Sencha建筑师在节省时间方面可以获得大量收益。