2014-09-29 24 views
0

我的项目目前有jquery.hammer和hammer.js。如何仅使用requirejs访问特定作用域的hammer.js?使用require js装载锤子

Hammer.js有如下定义模块:

if (typeof define == TYPE_FUNCTION && define.amd) { 
    define(function() { 
     return Hammer; 
    }); 
} else if (typeof module != 'undefined' && module.exports) { 
    module.exports = Hammer; 
} else { 
    window[exportName] = Hammer; 
} 

我尝试使用下面的代码加载它 -

require(['hammer'], function (Hammer) { 
     mod = Hammer; // Do something later with mod 
    }); 

我收到此错误:“未捕获的错误:不匹配匿名define()module:function(){ return Hammer; } http://requirejs.org/docs/errors.html#mismatch

回答

0

当你在你的HTML添加锤子JS脚本中的标签,如果您的情况下删除它,仅仅依靠requirejs加载可能发生这个错误是

0

你必须命名模块:

if (typeof define == TYPE_FUNCTION && define.amd) { 
    define('hammer',function() { 
     return Hammer; 
    }); 
} else if (typeof module != 'undefined' && module.exports) { 
    module.exports = Hammer; 
} else { 
    window[exportName] = Hammer; 
}