Gruntjs grunt.js中目的地的动态映射
我有一个包含多个子文件夹的项目,其中包含我想要连接的JavaScript文件。配置它们的正确方法是什么 例如 源:/modules/$modulename/js/*.js(几个文件) dest:/modules/$modulename/js/compiled.js 因此,我要做的是将子文件夹($modulename)的未知/未配置计数的js文件编译为每个子文件夹一个文件 这可能吗Gruntjs grunt.js中目的地的动态映射,gruntjs,Gruntjs,我有一个包含多个子文件夹的项目,其中包含我想要连接的JavaScript文件。配置它们的正确方法是什么 例如 源:/modules/$modulename/js/*.js(几个文件) dest:/modules/$modulename/js/compiled.js 因此,我要做的是将子文件夹($modulename)的未知/未配置计数的js文件编译为每个子文件夹一个文件 这可能吗 以下功能(根据Here和Now 78的说明构建)执行此任务: grunt.registerTask('prepar
以下功能(根据Here和Now 78的说明构建)执行此任务:
grunt.registerTask('preparemodulejs', 'iterates over all module directories and compiles modules js files', function() {
// read all subdirectories from your modules folder
grunt.file.expand('./modules/*').forEach(function(dir){
// get the current concat config
var concat = grunt.config.get('concat') || {};
// set the config for this modulename-directory
concat[dir] = {
src: [dir + '/js/*.js', '!' + dir + '/js/compiled.js'],
dest: dir + '/js/compiled.js'
};
// save the new concat config
grunt.config.set('concat', concat);
});
});
之后,我在默认配置中将preparemodulejs放在concat作业之前。您可能需要编写自己的任务,在其中迭代子文件夹,并动态附加到concat配置中
grunt.registerTask("your-task-name", "your description", function() {
// read all subdirectories from your modules folder
grunt.file.expand("./modules/*").forEach(function (dir) {
// get the current concat config
var concat = grunt.config.get('concat') || {};
// set the config for this modulename-directory
concat[dir] = {
src: ['/modules/' + dir + '/js/*.js', '!/modules/' + dir + '/js/compiled.js'],
dest: '/modules/' + dir + '/js/compiled.js'
};
// save the new concat configuration
grunt.config.set('concat', concat);
});
// when finished run the concatinations
grunt.task.run('concat');
});
使用以下命令运行此命令:
$ grunt your-task-name
这段代码未经测试,但我认为它应该可以胜任您的工作
提示:如果您想使GrunFile保持较小,可以将此代码放入外部文件并包含在GrunFile中,例如,将其放入tasks目录中的文件:
module.exports = function(grunt) {
grunt.registerTask("your-task-name", "your description", function() {
...
});
};
并在GrunFile中加载:
grunt.loadTasks("./tasks");
@这种方法很好,我完全忘记了我可以读取文件结构。我将更新哪个函数起作用的问题。+1用于建议
任务
目录。太多臃肿的Gruntfiles。这已经相当旧了,有没有办法从父目录中排除文件夹?