目前我们正在使用grunt-contrib-less来处理我们的LESS文件编译作为Grunt任务。较少的文件存储在与此类似的结构中:
assets/
styles/
base.less
client/
client.less
device/
tablet.less
phone.less
我们的Grunt配置有以下内容:
less: {
options: {
paths: 'assets/',
yuicompress: false,
ieCompat: true,
require: [
'assets/styles/base.less'
]
},
src: {
expand: true,
cwd: 'assets/',
src: [
'styles/**/*.less'
],
ext: '.css',
dest: 'assets/'
}
},
目前,这是将所有生成的css文件安装到与其来源的原始文件相同的目录中。我们想要做的是将它们吐出到/ assets / css /目录中,但具有相同的相对结构。例如:
assets/
css/
base.css
client/
client.css
device/
tablet.css
phone.css
是否有可以实现此目的的grunt-contrib-less配置?
答案 0 :(得分:4)
更简单的方法似乎是:
less: {
options: {
paths: 'assets/',
ieCompat: true,
require: [
'assets/styles/base.less'
]
},
src: {
expand: true,
cwd: 'assets/styles/',
src: [
'**/*.less'
],
ext: '.css',
dest: 'assets/css'
}
},
答案 1 :(得分:3)
我能够通过以下Gruntfile.js
var path = require('path');
module.exports = function(grunt) {
grunt.initConfig({
less: {
options: {
paths: 'assets/',
yuicompress: false,
ieCompat: true,
require: [
'assets/styles/base.less'
]
},
src: {
expand: true,
cwd: 'assets/',
src: [
'styles/**/*.less'
],
ext: '.css',
dest: 'assets',
rename: function(dest, src) {
return path.join(dest, src.replace(/^styles/, 'css'));
}
}
},
});
grunt.loadNpmTasks('grunt-contrib-less');
}
虽然它不在grunt-contrib-less
文档中,但是有更多可用于文件对象的功能。在我回答这个问题之前,我没有意识到有这么多。它们上的文档链接属于资源。