I use grunt to convert all my less files into css files,using this:
less: {
development: {
files: {
\"css/*.css\": \"less/*.less\"
}
}
}
This isn't a bug. Grunt no longer supports globbing in dest using that configuration. However, you can use the "files array" format, like this:
files: [
{
expand: true,
cwd: 'src',
src: ['*.less'],
dest: 'assets/css/',
ext: '.css'
}
]
Also, if you use a library like Bootstrap and you want to build each LESS file (component) into a separate, individual CSS file, it's not very easy to accomplish "out of the box". The reason is that each LESS file would need to have its own @import statements for variables.less and mixins.less (and a couple of others like forms.less and navbar.less, since they are referenced in other files).
To make this really easy, try the Grunt plugin, assemble-less (disclaimer: I'm one of the maintainers of the project, and I'm also on the core team for less.js). assemble-less is a fork of grunt-contrib-less by Tyler Kellen, but it adds some experimental features that will accomplish what you need (if you want stability, please stick with grunt-contrib-less). For example:
// Project configuration.
grunt.initConfig({
less: {
// Compile all targeted LESS files individually
components: {
options: {
imports: {
// Use the new "reference" directive, e.g.
// @import (reference) "variables.less";
reference: [
"bootstrap/mixins.less",
"bootstrap/variables.less"
]
}
},
files: [
{
expand: true,
cwd: 'bootstrap/less',
// Compile each LESS component excluding "bootstrap.less",
// "mixins.less" and "variables.less"
src: ['*.less', '!{boot,var,mix}*.less'],
dest: 'assets/css/',
ext: '.css'
}
]
}
}
...
}
The imports feature essentially prepends the specified @import statements onto the source files. The reference option allows you to "reference" other less files while only outputting styles that are specifically referenced via mixins or :extend. You might need to reference a few more files than shown here, since Bootstrap cross-references styles from other components, like forms.less, buttons.less, etc. (See the Gruntfile in assemble-less for examples.)
So after running the assemble-less task with the configuration in the example above, the assets/css folder would have:
alerts.cssbadges.cssbreadcrumbs.cssbutton-groups.cssbuttons.csscarousel.cssclose.csscode.csscomponent-animations.cssdropdowns.cssforms.cssglyphicons.cssgrid.cssinput-groups.cssjumbotron.csslabels.csslist-group.cssmedia.cssmodals.cssnavbar.cssnavs.cssnormalize.csspager.csspagination.csspanels.csspopovers.cssprint.cssprogress-bars.cssresponsive-utilities.cssscaffolding.csstables.csstheme.cssthumbnails.csstooltip.csstype.cssutilities.csswells.cssThere are other features that should help you with this, but the imports feature is super powerful since it allows you to add directives directly to the Gruntfile.