如何使开发版本的行为与测试和生产相同?

时间:2016-11-18 15:12:46

标签: extjs sencha-cmd

在开发应用时,我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

如何让开发版本与测试和制作相同?

1 个答案:

答案 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");