【问题标题】:Grunt 0.4 less task : How to not concatenate destination filesGrunt 0.4 少任务:如何不连接目标文件
【发布时间】:2013-02-26 23:36:26
【问题描述】:

我想从对应的.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"
                }
            }
        },
    });
};

【问题讨论】:

    标签: less gruntjs


    【解决方案1】:

    您需要阅读文档中的 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.
                    }]
                }
            },
        });
    };
    

    【讨论】:

    • 感谢 Sindre,正是我需要的,我已经知道那个页面,但我没有将标题与我的问题联系起来。
    【解决方案2】:

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

    对于这个特定的用例,assemble-less 相对于 grunt-contrib-less 的优势在于它有一个 concat: false 选项,使您能够使用 Grunt 中的任何 src-dest 模式单独编译 LESS 文件. assemble-less 还有一个require 选项,它会自动将“全局”less 文件(例如 variables.less 或 mixins.less)添加到所有其他指定的 less 文件中,无需在其中实际添加 @import 语句每少一个文件。

    因此,例如,使用 assemble-less 你会这样做:

      less: {
        development: {
          options: {
            concat: false
          }
          files: {
            "htdocs/css/": "htdocs/less/*.less"
          }
        }
      }
    

    【讨论】:

    • 注意:作者已经从 assemble-less 中删除了这个 concat 功能
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-09
    • 2013-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多