我将Grunt配置为grunt,使其像20个javascript文件一样连接起来。他们必须在一个特定的顺序,我想知道是否有一个整洁的方法来做到这一点,而不破坏我的Gruntfile.js。
我所做的和工作得很好的是,声明了一个名为“库”的变量,该变量的函数返回了一个字符串,并以正确的顺序返回了所有文件。
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]
}
}
},因此,当我在任务配置中调用“库”时,一切正常,但我想在一个单独的文件中声明这个列表。不幸的是,我什么也找不到,也不知道这是否可能。希望有人能帮我!预先多谢:-)
发布于 2016-01-07 22:39:10
我找到了解决办法!因为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任务中的源。希望这能帮上忙!
https://stackoverflow.com/questions/34371726
复制相似问题