构建后调试ExtJS错误

3 javascript debugging extjs build extjs4

我有一个ExtJS应用程序(我现在不会包含源代码).当我在根应用程序目录中运行Sencha CMD网络服务器时,一切正常,正如预期的那样.

当我构建应用程序(使用sencha app build)然后在构建目录中运行Sencha CMD webserver时,我收到错误:

Uncaught TypeError: Cannot read property 'isComponent' of null app.js:1
Ext.cmd.derive.constructor                                     app.js:1
z                                                              app.js:1
(anonymous function)                                           app.js:1
Run Code Online (Sandbox Code Playgroud)

我之前创建的构建工作正常,这是在我最近做出的一些更改(新构建)之后发生的.我检查了所有正常的嫌疑人(要求等等),一切似乎都井然有序.

我的问题是:你如何调试这类问题,因为它可以很好地预构建?

版本:ExtJS 4.2.1,Sencha CMD 4.0.2.67,来自Chrome开发者工具的错误

小智 6

上调试没有简单的方法 ExtJS的(或任何其他JavaScript)的程序,你得经过精缩代码,虽然有周围的几个方法可以帮助你越来越接近你的问题的根源,

  • 在测试模式下 构建应用程序sencha app build testing.测试构建是正常构建非缩小版本,您将能够以这种方式查看人类可读代码.对大多数情况来说,这应该足够了.
  • 美化您的缩小源代码.虽然测试版本应该适用于大多数情况,但我遇到过一些情况,其中测试代码确实有效,而发布版本却没有.简化代码美化至少会隔离抛出异常的行,虽然它可能很难识别,因为所有的注释都将消失,变量名称因缩小过程而看起来会有所不同,可能你会认识到你的代码,因为字符串和Ext调用不会改变.
  • 您也可以尝试使用Source Maps(这里有一篇关于该主题的简洁文章),您需要将默认的yui编译器更改为闭包编译器,但这不是一个简单的过程,这里是对命令编译器选项的详细说明.

我希望这些选项可以指出你正确的方向.