使用grunt-contrib-less的Grunt任务 - 如何在保持原始.less文件名的同时编译多个样式表

时间:2017-03-01 15:01:31

标签: gruntjs grunt-contrib-less

我正在使用更少的Bootstrap构建一个网站。我使用grunt来自动执行任务。

在我的gruntfile.js中我有这个部分:

less: {
  compileCore: {
    options: {
      strictMath: true,
      sourceMap: true,
      outputSourceFiles: true,
      sourceMapURL: '<%= pkg.name %>.css.map',
      sourceMapFilename: 'dist/css/<%= pkg.name %>.css.map'
    },
    src: 'less/bootstrap.less',
    dest: 'dist/css/<%= pkg.name %>.css'
  },
  compileBrandingStyles: {
    options: {
      strictMath: true,
      sourceMap: false,
      outputSourceFiles: false
    },
    src: 'less/branding/**/*.less',
    dest: 'dist/css/<%= what do I put here? %>.css'
  }
},

在“compileBrandingStyles”中,我想获取文件夹中的所有* .less文件,并将它们编译成具有原始文件名的单独css文件。没有连接。

在文件夹中:less/branding我有x个.less文件:

theme-1.less
theme-2.less
theme-3.less
theme-4.less

我想将它们输出到dist/css/文件夹中,如下所示:

theme-1.css
theme-2.css
theme-3.css
theme-4.css

那么我该怎么写这个部分来保存他们的文件名呢?

dest: 'dist/css/<%= what do I put here? %>.css'

1 个答案:

答案 0 :(得分:0)

重新配置您的compileBrandingStyles目标:

// ...
compileBrandingStyles: {
    options: {
        strictMath: true,
        sourceMap: false,
        outputSourceFiles: false
    },
    files: [{
        expand: true,
        cwd: 'less/branding/',
        src: ['**/*.less'],
        dest: 'dist/css/',
        ext: '.css'
    }]
}

在grunt docs中查看有关此内容的更多信息。

修改

如果你没有&#39;希望目标文件夹中包含的子文件夹使用flatten

// ...
compileBrandingStyles: {
    options: {
        strictMath: true,
        sourceMap: false,
        outputSourceFiles: false
    },
    files: [{
        expand: true,
        cwd: 'less/branding/',
        src: ['**/*.less'],
        dest: 'dist/css/',
        ext: '.css',
        flatten: true // <-- Remove all path parts from generated dest paths.
    }]
}