我正在使用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]
}
}
},
因此,当我在任务配置中调用'libraries'时,一切正常,但我想在单独的文件中声明此列表。 不幸的是我找不到任何东西,也不知道这是否可能。希望有人能帮助我!在此先感谢: - )
答案 0 :(得分:1)
我找到了解决方案!由于Grunt是基于NodeJS构建的,因此可以使用module.exports。我所做的是设置一个名为libraries.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任务中的源代码。希望这有用!