Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将一个模块加载到另一个模块时,RequireJS模块加载顺序错误_Javascript_Jquery_Jquery Plugins_Requirejs_Almond - Fatal编程技术网

Javascript 将一个模块加载到另一个模块时,RequireJS模块加载顺序错误

Javascript 将一个模块加载到另一个模块时,RequireJS模块加载顺序错误,javascript,jquery,jquery-plugins,requirejs,almond,Javascript,Jquery,Jquery Plugins,Requirejs,Almond,我已经编写了一个使用requirejs for AMD的web应用程序: require(dependencies, function(dependencies) { (function($) { $.fn.plugin = function(options) { return this; }; })(window.jQuery); }); 然后,我使用almond和r.js将其编译成一个javascript文件,使用构建配置: ({ baseUrl:

我已经编写了一个使用requirejs for AMD的web应用程序:

require(dependencies, function(dependencies) { 
    (function($) {
        $.fn.plugin = function(options) { return this; };
    })(window.jQuery);
});
然后,我使用almond和r.js将其编译成一个javascript文件,使用构建配置:

({
    baseUrl: ".",
    paths: {
        'jquery' : 'vendor/jquery-1.9.1.min'
        'almond' : "../node_modules/almond/almond"
    },
    name : "almond",
    include : "main",
    out : "plugin.js",
    wrap : true
})
接下来,我想在另一个应用程序中使用这个插件,同样基于requirejs。我有:

require.config({ paths: { 'jquery': 'vendor/jquery-1.9.1.min' } });
require(['jquery','plugin'], function ($) {
    $('#plugin').plugin(options);
});
但是,代码加载顺序不正确:

  • 加载jquery和插件js文件
  • 执行$('#plugin').plugin(选项)
  • 运行(function($){$.fn.plugin=function(options){returnthis;};})(window.jQuery) 显然,(2)是一个错误,因为(3)需要首先运行。问题是,为什么

    更新1 一个建议的解决方案是将第一个代码块更改为:

    define(dependencies, function(dependencies) { 
        (function($) {
            $.fn.plugin = function(options) { return this; };
        })(window.jQuery);
    });
    
    一旦编译,这将成为:

    define("main", dependencies, function(dependencies) { 
        (function($) {
            $.fn.plugin = function(options) { return this; };
        })(window.jQuery);
    });
    
    不幸的是,现在这个块中的代码永远不会执行