【问题标题】:Ordening files in Grunt with external file使用外部文件对 Grunt 中的文件进行排序
【发布时间】:2016-03-26 02:43:30
【问题描述】:

我正在使用 grunt-contrib-concat 配置 Grunt 以连接 20 个 javascript 文件。它们必须按特定顺序排列,我想知道是否有一种巧妙的方法可以做到这一点,而不会弄乱我的 Gruntfile.js。

我所做的和运行良好的方法是声明一个名为“libraries”的变量,并使用一个函数返回一个字符串,其中所有文件都按正确的顺序排列。

var libraries = new (function () {

    return [

        '/javascript/libs/jquery.min.js',
        '/javascript/libs/jquery.address.js',
        '/javascript/libs/jquery.console.js'

    ];

});

然后concat(简化,只是一个例子):

concat: {
    libs: {
        files: {
            'libs.js' : [libraries],                
        },
    },
    main: {
        files: {
            'main.js' : [main]
        }
    }   
},

因此,当我在任务配置中调用“库”时,一切正常,但我想在单独的文件中声明此列表。 不幸的是,我找不到任何东西,我也不知道这是否可能。希望有人可以帮助我!在此先感谢:-)

【问题讨论】:

    标签: javascript gruntjs external concat


    【解决方案1】:

    我找到了解决办法!由于 Grunt 是基于 NodeJS 构建的,因此可以使用 module.exports。我所做的是设置一个名为 library.js 的外部文件,该文件位于我的 Grunt 目录中。

    var exports = module.exports = {};
    
    exports.customLibrary = function () {
    
        return [
    
            // Path to a library
            // Path to another library
            // and so on...
    
        ];
    
    };
    
    exports.mainScripts = function () { 
    
        return [
    
            // Path to a library
            // Path to another library
            // and so on...
    
        ];
    
    };
    

    然后我通过在 Gruntfile.js 中声明一个变量来导入这个模块

    var libraries                   = require('../javascript/libraries.js');
    

    为了使用在libraries.js 中声明的方法,我设置了另外两个变量,它们以所需的顺序返回一个包含所有必要文件的字符串:

    var customLibrary               = libraries.customLibrary();
    var mainScripts                 = libraries.mainScripts();
    

    我使用这些变量来定义 concat 任务中的源。希望这有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-26
      • 2019-03-15
      • 2021-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多