[Sencha ExtJS] 关于build production后,浏览器运行报错'Uncaught TypeError: c is not a function'

原文:http://blog.csdn.net/lovelyelfpop/article/details/51328783

估计很多人用 ExtJS6 + Sencha Cmd 6 的时候,遇到过一种情况:开发的时候明明正常的,build之后运行就报了下面的错误

Uncaught TypeError: c is not a function

心里一万个草泥马奔腾:What the hell is this?(这TM什么JB玩意?)

其实根本原因是你忘记了requires某个类导致的。

比如你这样使用{ xtype: ‘gridpanel‘ },但是没有requires: ‘Ext.grid.Panel‘,框架就会去异步(Synchronous XMLHttpRequest)加载js文件,不过因为你用的是xtype,而不是类名(不能通过类名和路径的映射取找到对应js文件),所以加载的异步文件名成了‘.js‘,也就是图上第一个错。

因为sencha cmd默认启用了optimize(优化), 导致错误提示不怎么友好。根据这个Console错误,你根本不知道是哪个类没有requires。

解决办法:

1、在 {ExtJS6项目}\.sencha\app\production.properties文件中添加

build.optimize=

(后面值是空的,表示关闭cmd优化)

2、再次build,浏览器运行,这时就会提示

Unrecognized alias: xxx.yyyyyyy

然后根据这个alias(例如widget.gridpanel),就知道是哪个类没有requires了

以前用 sencha touch 的时候,没有 requires 的类,开发状态下会有一个警告 WARN,ExtJS 6 反而没了这个功能。

注意:如果想要build的时候不压缩js代码,可以参考博客《移动开发71 Sencha项目开发、调试方法建议

欢迎加入Sencha Touch + Phonegap交流群

1群:194182999 (满)

2群:419834979

共同学习交流(博主QQ:479858761

[Sencha ExtJS] 关于build production后,浏览器运行报错'Uncaught TypeError: c is not a function'

时间: 2024-10-07 13:48:07

[Sencha ExtJS] 关于build production后,浏览器运行报错'Uncaught TypeError: c is not a function'的相关文章

简记webpack运行报错 Uncaught TypeError: self.postMessage is not a function

说好2017Fix的还是能重现,可能项目的版本比较旧了,简要记录解决办法 1.错误: index.js?bed3:67 Uncaught TypeError: self.postMessage is not a function at sendMsg (index.js?bed3:67) at Object.invalid (index.js?bed3:83) at SockJS.onmessage (socket.js?57b2:41) at SockJS.EventTarget.dispat

create-react-app 创建的项目执行npm run eject后,运行报错

create-react-app 创建的项目执行npm run eject后,运行报错:Cannot find module '@babel/plugin-transform-react-jsx-source' 解决方法: 1.删除node_modules文件 2.执行yarn重新安装项目依赖 3.npm start 运行项目即可 原文地址:https://www.cnblogs.com/lihaohua/p/11387495.html

安装pytest-allure-adaptor后,运行报错:AttributeError: module 'pytest' has no attribute 'allure'

原因:因为pytest-allure-adaptor库基本被python3放弃了,运行很不友好,反正我运行就是报错 解决方法: 先卸载:pip uninstall pytest-allure-adaptor 再安装:pip allure-pytest 然后再去对应case的文件夹下面cmd里面运行: pytest -s -q --alluredir  report  (可以改为你想设的路径,如果是report默认当前目录下),就会生成report文件夹了 安装pytest-allure-adap

Web浏览器运行报错

脚本失控基本上有以下四个方面的原因: 1. 在循环中执行了太多的操作2. 臃肿的函数体3. 过多的递归4. 过多的DOM调用

运行编译后的程序报错 error while loading shared libraries: lib*.so: cannot open shared object file: No such file or directory

运行编译后的程序报错  error while loading shared libraries: lib*.so: cannot open shared object file: No such file or directory -------------------------------------------------------------------------------------------------------------------------------------

Python首次安装后运行报错(0xc000007b)的解决方法

最近在安装完Python后运行发现居然报错了,错误代码是0xc000007b,于是通过往上查找发现是因为首次安装Python缺乏VC++库的原因,下面通过这篇文章看看如何解决这个问题吧. 错误提示如下: 其实这是一个挺常见的系统报错,缺乏VC++库. 我安装的是python3.5.2,这个版本需要的vc版本是2015的了,下载:Microsoft Visual C++ 2015 update 3 安装完后发现就正常了: 总结 通过以上的方法就能轻松解决首次安装Python后运行报错的问题,希望本

MyEclipse上有main函数类运行报错:Editor does not contain a

MyEclipse下有main函数类运行报错:Editor does not contain a main type?出现这种问题的原因是,该java文件 MyEclipse下有main函数类运行报错:Editor does not contain a main type ?出现这种问题的原因是,该java文件所在的包没有被MyEclipse认定为源码包.处理方法如下: 1.打开Java Build Path窗口,并选择Source界面: ?2.点击 Add Folder,在对话框中选择该类的根

cocos2d-js 命令框中cocos run -p web浏览器无限报错解决

在cocos2d-js论坛里的发帖,最终还是找到了答案! 解决方法: cocos run -p web运行任何一个项目后,浏览器无限报错

android编译framework架包运行报错 (转)

android编译framework架包运行报错 http://blog.csdn.net/cqupt_chen/article/details/8163632 最近在看frameworks里的源码,手痒了,便想改改看看效果,没想到改完后,模拟器却运行不起来了.        首先声明,我是用的android 4.0.3 ICS的源码,编译好后,利用编译好的镜像启动的模拟器,以前修改过里面的Launcher,将生成的Launcher.apk和Launcher.odex  push后是成功的.现在