我想将jquery缓动包包含到我的应用程序中。在requireJS文件被“优化”之前,它可以正常工作。现在我使用优化版本,当我调用使用缓动的动画时,我得到了这个错误:
“jQuery.easing [jQuery.easing.def]不是函数”(firefox)
“未捕获的TypeError:对象#的属性'未定义'不是函数”(chrome)
我像这样包括我的JS:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script>
<script src="http://gsgd.co.uk/sandbox/jquery/easing/jquery.easing.1.3.js"></script>
<script data-main="/js/mesh-built.js" src="/js/libs/require.js"></script>
我的主要JS页面如下所示: http://thebeer.co/js/built/mesh-built.js
require(["globals","functionBank"],function(gb,r){
//myapp code
});
全局变量如下所示:
http://thebeer.co/js/globals.js
和functionbank看起来像这样:
http://thebeer.co/js/functionBank.js
我唯一的想法是,因为在全局和函数中声明了jquery是一个依赖,它是以某种方式传递而没有附加缓动包?我应该在主要的requireJS文件中附加缓动插件吗?
FORGOT TO MECTION: 只有在需要使用requireJS优化脚本后,此问题才会明显...
答案 0 :(得分:3)
mesh-built.js文件似乎包含require.js内容。最好不要包含require.js(确保在构建配置文件中指定includeRequire:true 不。我首先想到的是这个重复的需要导致问题,它可能没有正确引用jQuery,它被用来处理built.js文件。