使用外部文件在 Grunt 中排序文件
Ordening files in Grunt with external file
我正在使用 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' 时,一切正常,但我想在单独的文件中声明此列表。
不幸的是我找不到任何东西,我也不知道这是否可能。希望有人能帮助我!提前致谢:-)
我找到了解决办法!由于 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 中声明的方法,我设置了另外两个变量,其中 returns 一个字符串,其中包含按所需顺序排列的所有必要文件:
var customLibrary = libraries.customLibrary();
var mainScripts = libraries.mainScripts();
我使用这些变量来定义 concat 任务中的源。希望这对您有所帮助!
我正在使用 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' 时,一切正常,但我想在单独的文件中声明此列表。 不幸的是我找不到任何东西,我也不知道这是否可能。希望有人能帮助我!提前致谢:-)
我找到了解决办法!由于 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 中声明的方法,我设置了另外两个变量,其中 returns 一个字符串,其中包含按所需顺序排列的所有必要文件:
var customLibrary = libraries.customLibrary();
var mainScripts = libraries.mainScripts();
我使用这些变量来定义 concat 任务中的源。希望这对您有所帮助!