我有一个 ExtJS 应用程序(我现在不包括源代码)。当我在根应用程序目录中运行 Sencha CMD 网络服务器时,一切正常,正如预期的那样。
当我构建应用程序(使用 sencha 应用程序构建)然后在构建目录中运行 Sencha CMD 网络服务器时,我收到错误:
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
我之前创建的版本运行良好,这是在我最近进行一些更改(新版本)之后发生的。我已经检查了所有正常的嫌疑人(要求等...),一切似乎都井井有条。
我的问题是:您如何调试此类问题,因为它在构建前运行良好?
版本:ExtJS 4.2.1,Sencha CMD 4.0.2.67,Chrome 开发者工具出错
最佳答案
在缩小代码之后,调试 ExtJS(或任何其他 Javascript)应用程序没有简单的方法,尽管有一个有几种方法可以帮助您接近问题的根源,
- 构建您的应用测试模式
sencha 应用构建测试
。 测试版本 是普通版本 的非压缩 版本,这样您将能够看到人类可读的代码。对于大多数情况,这应该足够了。 - 美化您的精简源代码。虽然测试构建应该适用于大多数情况,但我遇到过一些测试代码可以工作而发布版本没有的情况。缩小代码美化至少将隔离抛出异常的行,尽管可能很难识别,因为所有注释都将消失并且变量名称会因缩小过程而看起来不同,可能无论如何,您将能够识别您的代码,因为字符串和 Ext 调用不会改变。
- 您也可以尝试使用 Source Maps(这里有一个关于这个主题的 neat article),您需要将默认的 yui 编译器更改为 closure compiler ,但这不是一个直接的过程,这里是一个 detailed explanation在命令编译器选项上。
我希望这些选项可以为您指明正确的方向。
关于javascript - 构建后调试 ExtJS 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22491125/