【发布时间】:2014-05-12 04:32:12
【问题描述】:
我想要一个包含 2 个任务的 gruntfile:less(编译所有 less 文件)和 watch(监听更改并重新编译更改的文件)。
我有以下 Gruntfile.js:
module.exports = function(grunt) {
var files = [
{
expand: true,
cwd: 'media/less',
src: ['*.less'],
dest: 'media/css/',
ext: '.css'
},
{
expand: true,
cwd: 'media/less/vendor',
src: ['*.less'],
dest: 'media/css/vendor/',
ext: '.css'
},
{
expand: true,
cwd: 'media/admin/less',
src: ['*.less'],
dest: 'media/admin/css/',
ext: '.css'
}
];
grunt.initConfig({
less: {
development: {
options: {
compress: false,
yuicompress: true,
optimization: 2
},
files: files
},
production: {
options: {
compress: true,
yuicompress: true,
optimization: 2
},
files: files
}
},
watch: {
styles: {
files: ['media/**/*.less'],
tasks: ['less:development'],
options: {
nospawn: true
}
}
}
});
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('default', ['less:development']);
};
less 任务运行正常,没有任何问题。但是,watch 任务会侦听更改,但会在更改时重新编译所有文件。我怀疑这与我设置 less 任务的方式有关,因为我希望我的 less 文件列表是动态的,而不是手动添加每个文件。
根据this answer grunt 应该已经支持这个,但我不确定如何。
【问题讨论】:
标签: gruntjs grunt-contrib-watch