首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用外部文件对Grunt中的文件进行排序

用外部文件对Grunt中的文件进行排序
EN

Stack Overflow用户
提问于 2015-12-19 14:14:42
回答 1查看 169关注 0票数 2

我将Grunt配置为grunt,使其像20个javascript文件一样连接起来。他们必须在一个特定的顺序,我想知道是否有一个整洁的方法来做到这一点,而不破坏我的Gruntfile.js。

我所做的和工作得很好的是,声明了一个名为“库”的变量,该变量的函数返回了一个字符串,并以正确的顺序返回了所有文件。

代码语言:javascript
复制
var libraries = new (function () {

    return [

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

    ];

});

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

代码语言:javascript
复制
concat: {
    libs: {
        files: {
            'libs.js' : [libraries],                
        },
    },
    main: {
        files: {
            'main.js' : [main]
        }
    }   
},

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-07 22:39:10

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

代码语言:javascript
复制
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中声明一个变量来导入这个模块。

代码语言:javascript
复制
var libraries                   = require('../javascript/libraries.js');

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

代码语言:javascript
复制
var customLibrary               = libraries.customLibrary();
var mainScripts                 = libraries.mainScripts();

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34371726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档