到目前为止,我已经通过两种方式完成了升级:
1)我设置了新的sencha app generate [appName]
并将 4.2 文件和目录转移到 6.x 。设置完成后,执行sencha app build
:
The following error occurred while executing this line:
/var/www/html/backoffice-test/EcommBackoffice/.sencha/app/build-impl.xml:381: The following error occurred while executing this line:
/var/www/html/backoffice-test/EcommBackoffice/.sencha/app/init-impl.xml:382: com.sencha.exceptions.ExNotFound: Unknown definition for dependency : Ext.ux.grid.filters.Filters
rareyes@MAKDL-RAREYES:/var/www/html/backoffice-test/EcommBackoffice$
除此之外,在加载应用程序时,控制台错误会显示以下行:
http://localhost:1841/EcommBackoffice/Overrides/view/Table.js?_dc=1452581765612`
http://localhost:1841/EcommBackoffice/Overrides/selection/Model.js?_dc=1452581765612`
[E] [Ext.Loader] Some requested files failed to load.
[E] [Loader] The following classes failed to load:
[E] [Loader] Overrides.view.Table from Overrides/view/Table.js
[E] [Loader] Overrides.selection.Model from Overrides/selection/Model.js
[E] [Loader] EcommBackoffice.Application from app/Application.js
2)被困在第一个上,我的第二个方法就是在现有应用程序上执行sencha app upgrade -ext
。它成功更新,除了执行sencha app build
时,它会发出类似的错误,例如:
The following error occurred while executing this line:
/var/www/html/backoffice-2.0/src/main/webapp/.sencha/app/build-impl.xml:381: The following error occurred while executing this line:
/var/www/html/backoffice-2.0/src/main/webapp/.sencha/app/init-impl.xml:382: com.sencha.exceptions.ExNotFound: Unknown definition for dependency : Ext.ux.grid.FiltersFeature
和一个简短的控制台错误:Uncaught ReferenceError: Ext is not defined
当我修改index.html
并替换x-compile
代码段
<!-- <x-compile> -->
<!-- <x-bootstrap> -->
<link rel="stylesheet" href="bootstrap.css">
<script src="ext/ext-all-debug-w-comments.js"></script>
<script src="bootstrap.js"></script>
<!-- </x-bootstrap> -->
<script src="app.js"></script>
<!-- </x-compile> -->
到此:
<script id="microloader" data-app="a32fd6d2-db0c-4c4b-a6a2-4185b3ee3fd4" type="text/javascript" src="bootstrap.js"></script>
在编辑index.html
之前,x-compile
会引发不同的错误:
/.sencha/app/init-impl.xml:382: com.sencha.exceptions.ExBuild: Mixed-Mode x-compile and microload markup is currently unsupported
这就是我选择6.x
提供支持的Microloader的原因我在这里迷路了。 ExtJS显然没有适当的Sencha指南直接从 4.x升级到6.x 。它只升级一步,例如 4.x到5.x , 5.x到6.x 。即便如此,这些指南还不是很清楚,恕我直言,缺乏文件。
任何可以指出我提供的错误存在问题的人?
答案 0 :(得分:1)
好吧,Cmd错误消息说得清清楚楚:
Unknown definition for dependency : Ext.ux.grid.filters.Filters
这意味着ExtJS6不提供Ext.ux.grid.filter.Filters
,这在您的应用程序中的某处是必需的。
正如Ext文档所述,Ext.ux
命名空间中的所有内容都不是升级安全的,因为它是用户提供的内容,Sencha发现它很有用并添加到Ext zip文件中。通常,您只需在互联网上搜索官方zip文件中缺少的ux功能的可用ExtJS 6.0.x实现;或者自己写。
但是对于你的特殊情况,我相信他们将来自ux的gridfilters移动到ExtJS 4.2.x中的官方分支,然后删除了ExtJS 5中的别名,最后,在ExtJS 6中,他们用插件替换了该功能。
所以,请查看Ext.grid.filters.Filters
,我相信它可以满足您的需求,但您必须重写部分代码才能使用它。 (更改要求,将引用从功能移动到插件,可能会考虑其他更改。)
我认为第二条错误消息(“[E] [Ext.Loader]某些请求的文件无法加载。”)表示与第一条错误消息相同,我希望requires:['Ext.ux.grid.filters.Filters']
中有Overrides/view/Table.js
{1}}。 (Overrides.selection.Model
未加载,因为它需要Overrides.view.Table
,并且未加载EcommBackoffice.Application
,因为它引用Overrides.selection.Model
)