Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.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-将多个文件合并为不依赖于requirejs的单个js文件_Javascript_Jquery_Requirejs_Require_Minify - Fatal编程技术网

Javascript requirejs-将多个文件合并为不依赖于requirejs的单个js文件

Javascript requirejs-将多个文件合并为不依赖于requirejs的单个js文件,javascript,jquery,requirejs,require,minify,Javascript,Jquery,Requirejs,Require,Minify,我正在编写包含大量代码的jQuery插件。因此,我决定分离代码,使其对我(开发人员)更模块化。为此,我使用require.js。 现在我有6个js文件: utils.js base-row.jas a-row.js b-row.js my-table.js main.js 文件1到5定义了JavaScript“类”,它们之间有依赖关系。运行所有音乐会的“主要”类是my-table.js。main.js仅依赖于my-table.js,并从中创建插件: require([ 'my-table

我正在编写包含大量代码的jQuery插件。因此,我决定分离代码,使其对我(开发人员)更模块化。为此,我使用require.js。
现在我有6个js文件:

  • utils.js
  • base-row.jas
  • a-row.js
  • b-row.js
  • my-table.js
  • main.js
  • 文件1到5定义了JavaScript“类”,它们之间有依赖关系。运行所有音乐会的“主要”类是my-table.js。main.js仅依赖于my-table.js,并从中创建插件:

    require([
        'my-table'
    ], function(MyTable) {
        jQuery.fn.myTable = function(options) {
            var table = new MyTable(this, options);
            this.data('myTable', table);
            return this;
        };
    });
    
    现在我想从这些文件创建一个大js文件,其中包含所有6个文件,没有任何依赖关系(除了用户应该引用的jQuery)。为此,我使用了r.js(),结果得到了一个依赖于require.js的大js文件(并包含对define和require的调用)。我遵循这一点:并使用almond.js来组合我的所有文件,使其不依赖于require.js。这很好。
    问题是为什么我需要所有的define和require方法调用和almond.js?为什么优化器不能像这样仅连接函数结果(如本问题中所述:):

    (function() {
        var utils = «function() {
            ....
            return Utils;
        }»();
        var baseRow = «function(A) {
            ....
            return BaseRow;
        }»(utils);
        ....
        ....
        var myTable = .....
    
        //<--This is require call and therefore doesn't return a thing
        (function(MyTable) {
            jQuery.fn.myTable = function(options) {
                var table = new MyTable(this, options);
                this.data('myTable', table);
                return this;
            };
        })(myTable);
    })();
    
    (函数(){
    var utils=«函数(){
    ....
    返回UTIL;
    }»();
    var baseRow=«函数(A){
    ....
    返回基线;
    }»(UTIL);
    ....
    ....
    var myTable=。。。。。
    
    // 优化器中的findnestededependencies选项的默认值为“false”,这意味着即使在优化脚本之后,仍可能存在需要模块加载程序的嵌套
    require
    define
    调用。外部依赖关系也需要加载程序


    但是,我同意,如果findnestedependencies设置为“true”,并且项目中没有外部依赖项,那么优化器应该能够消除对加载程序的需求。

    您可以只在文件中包含所需的文件。您可以通过getScript调用来实现这一点

    $.getScript("my_lovely_script.js", function(){
    
       //whatever you want here.
    
    });