Grunt 0.4减少任务:如何不连接目标文件

时间:2013-03-11 17:16:45

标签: less gruntjs

我想从相应的.less文件生成.css部分文件

我使用npm提供的最新版本,grunt @ 0.4.0,grunt-contrib-less@0.5.0

在Grunt版本0.4之前,我可以简单地指定模式:

htdocs/less/*.less作为来源

htdocs/css/*.css作为目的地

文件夹htdocs/less中的所有文件都会生成到文件夹htdocs/css

从v0.4开始,目标模式不再起作用,文件夹htdocs/less中的所有文件都连接成一个名为*.css的文件

如何配置生成所有文件的任务,而不是将它们连接成一个文件。

我不想单独列出文件。

无法在Grunt文档http://gruntjs.com/configuring-tasks#files中找到答案

谢谢。

我的Gruntfile.js(摘录):

module.exports = function (grunt) {
    grunt.initConfig({
        less: {
            development: {
                files: {
                    "htdocs/css/*.css": "htdocs/less/*.less"
                }
            }
        },
    });
};

2 个答案:

答案 0 :(得分:14)

您想阅读文档中的Building the files object dynamically部分。

这将是您当前配置的直接翻译:

module.exports = function (grunt) {
    grunt.initConfig({
        less: {
            development: {
                files: [{
                    expand: true,        // Enable dynamic expansion.
                    cwd: 'htdocs/less',  // Src matches are relative to this path.
                    src: ['*.less'],     // Actual pattern(s) to match.
                    dest: 'htdocs/css',  // Destination path prefix.
                    ext: '.css',         // Dest filepaths will have this extension.
                }]
            }
        },
    });
};

答案 1 :(得分:0)

同时查看assemble-less。它基于grunt-contrib-less,但专门针对你想要做的事情。 (完全披露,我也是该项目的维护者)。

对于这个特定用例,assemble-less优于grunt-contrib-less的优点是它具有concat: false选项,使您可以使用任何src-单独编译LESS文件格伦特的目标模式。无汇编也有一个require选项,它会自动将“全局”较少的文件(例如variables.less或mixins.less)添加到所有其他指定的较少文件中,从而无需实际添加{{1每个较少文件中的语句。

因此,例如,您可以使用assemble-less

@import