如何将匿名函数包含在RequireJS依赖项中?

时间:2014-06-04 22:25:12

标签: javascript jquery requirejs anonymous-function

我现在开始使用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
});

我应该如何封装该匿名函数,以便将其作为依赖项添加到我的主文件中?

1 个答案:

答案 0 :(得分:1)

来自RequireJS文档:

  

理想情况下,您加载的脚本将是由其定义的模块   调用define()。但是,您可能需要使用一些传统/遗留   "浏览器全局"不通过表达依赖关系的脚本   限定()。对于那些,您可以使用shim配置。要正确表达   他们的依赖。

阅读本文:http://requirejs.org/docs/api.html#config-shim
它对你必须做的事情有一个非常好的解释,并给出了一个很好的例子。

基本上,您只需要为lib_file.js设置一个shim配置,因此在您访问该脚本之前,Require知道要加载正确的依赖项。