在开发应用时,我sencha app watch
正在运行。当然,这会监视文件更改并触发开发构建。所以现在我可以在浏览器中运行正在开发的应用程序。好的。
问题是sencha app build testing
与开发构建的行为方式不同。不同之处在于需要requires
。如果开发中缺少requires
,则应用程序的功能就像它在那里一样。
Chrome会发出警告 - 有时会:
[W] [Ext.Loader] Synchronously loading 'MyApp.view.Etc'; consider adding Ext.require('MyApp.view.Etc') above Ext.onReady
在测试构建之后(或类似于生成构建之后),这些警告会变为错误,并且应用程序无法正常运行。
是的,在开发期间,应确保添加所有requires
。但如果我想念一个我遇到麻烦的人 - 痛苦的"但它适用于我的机器"综合征。
如果我告诉sencha app watch
不能原谅丢失requires
或告诉sencha app build testing
(或production
)做什么,这不会有问题开发构建确实并推断缺少的requires
。
如何让开发版本与测试和制作相同?
答案 0 :(得分:2)
你不能告诉expose
推断缺少的需求,因为当你的JS文件的源代码不应该在应用程序的路径上可用时,Sencha只发现某些必需的类在运行时丢失了。开始搜索。这是运行时错误,而不是编译器错误。
所以你只能这样做:你可以编辑ExtJS源代码。警告在sencha app build production
中引发,如下所示:
packages\core\src\class\ClassManager.js
您可以将其更改为
Ext.log.warn("[Ext.Loader] Synchronously loading '" + name + "'; consider adding " +
"Ext.require('" + name + "') above Ext.onReady");