Grunt中watch和less配合控制*.less文件的自动编译,怎么配置文件名/路径?(通配符的使用问题)

mc_zone
  • 282

我想在 Gruntfile.js 中设置watch监听目录下的所有.less文件的更改(第一步),同时触发相应less文件编译为.css文件(第二步)。
我目前的设置是这样的:

module.exports = function(grunt){
grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    watch: {
        less: {
            files: ['public/**/*.less'],
            tasks:['less:task1'],
            options: {livereload:false}
        },
        css: {
            files: ['public/**/*.css'],
            options: {livereload:true}
        }
    },
    less: {
        task1:{
            options: {
                compress: false,
                yuicompress: false
            },
            files: {
              "public/css/style1.css": "public/css/style1.less",
              "public/css/style2.css": "public/css/style2.less"
              //...
            }
        }
    },
});

grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-less');

grunt.registerTask('default',['watch']);
grunt.registerTask('lessc',['less:task1']);

};

以上配置目前只实现了第一步watch的监听,在less任务中,我现在只能列举出每一个存在的less文件。
但是我想用通配符来做。如果用通配符这样写的话:

          files: {
              "public/**/*.css": "public/**/*.less"
          }

结果是编译的时候真的生成了**文件名的文件夹和文件(如下)。现在我不知道这里应该怎么写呢?求教。

>> File "public/css/style1.less" changed.
Running "less:task1" (less) task
File tpl/**/*.css created
回复
阅读 9.7k
2 个回答
✓ 已被采纳

less :{ main: { expand: true, cwd: './less/', src: ['**/*.less'], dest: './css/', ext: '.css' } },

直接用构建工具啊。。。grunt配置太麻烦了。
例如 我们团队开发的 silky, 还有我的个人版 slow-cli 或者用京东的 jdf 都可以。 没必要这么麻烦...
npm 上都有。
开发直接使用, 打包直接构建,肯定满足你一般的开发需求的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏