我现在开始使用RequireJS,我已经能够添加我的项目依赖项,但我仍然无法添加jQuery匿名函数。
例如,使用我的normal_file.js,我会执行以下操作:
normal_file.js :
define(['dependency1'], function(Dependency) {
var Test1 = ...;
return Test1;
});
来自没有模块的文件,如下例所示,我不知道如何封装它:
lib_file.js :
(function ($) {
// Do stuff...
})(window.jQuery);
lib_file不是由我制作的,我不确定它是如何工作的,但我认为它是一个匿名的自动执行函数,是这样吗?。
无论如何,我的目标是在我的主要代码中使用这两个文件,如下所示:
main.js :
requirejs.config({
baseUrl:'/static/editorial/js/',
paths: {
jquery: 'third_party/jquery-1.10.2',
react: 'third_party/react-with-addons'
}
});
var dependencies = [
'third_party/react-with-addons',
'third_party/jquery-1.10.2',
'build/utils/normal_file,
'third_party/lib_file
];
require(dependencies, function(React, $, Test1, ??) {
// do my stuff
});
我应该如何封装该匿名函数,以便将其作为依赖项添加到我的主文件中?
答案 0 :(得分:1)
来自RequireJS文档:
理想情况下,您加载的脚本将是由其定义的模块 调用define()。但是,您可能需要使用一些传统/遗留 "浏览器全局"不通过表达依赖关系的脚本 限定()。对于那些,您可以使用shim配置。要正确表达 他们的依赖。
阅读本文:http://requirejs.org/docs/api.html#config-shim
它对你必须做的事情有一个非常好的解释,并给出了一个很好的例子。
基本上,您只需要为lib_file.js
设置一个shim配置,因此在您访问该脚本之前,Require知道要加载正确的依赖项。