Ответ 1
Это не ошибка. Grunt больше не поддерживает globbing в dest
с использованием этой конфигурации. Однако вы можете использовать формат файлов массивов, например:
files: [
{
expand: true,
cwd: 'src',
src: ['*.less'],
dest: 'assets/css/',
ext: '.css'
}
]
Кроме того, если вы используете такую библиотеку, как Bootstrap, и хотите создать каждый LESS файл (компонент) в отдельный отдельный CSS файл, выполнить его "из коробки" очень непросто. Причина в том, что каждый LESS файл должен иметь свои собственные операторы @import
для variables.less
и mixins.less
(и еще несколько таких, как forms.less
и navbar.less
, поскольку они указаны в других файлах).
Чтобы сделать это очень просто, попробуйте плагин Grunt, assemble-less (отказ от ответственности: я являюсь одним из разработчиков проекта, и я также в основной команде для less.js). без сбоев - это вилка Tyler Kellen, но она добавляет некоторые экспериментальные функции, которые помогут вам в том, что вам нужно (если вы хотите стабильности, пожалуйста, придерживайтесь grunt-contrib-less). Например:
// 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'
}
]
}
}
...
}
Функция imports
существенно добавляет указанные операторы @import
к исходным файлам. Опция reference
позволяет вам "ссылаться" на другие файлы меньшего размера, в то время как выдает только стили, которые специально указаны через mixins или :extend
. Возможно, вам понадобится ссылаться на несколько файлов, чем показано здесь, поскольку стили перекрестных ссылок Bootstrap из других компонентов, таких как forms.less, buttons.less и т.д. (См. Gruntfile в сборке без примеров)
Итак, после запуска задачи assemble-less
с конфигурацией в примере выше, папка assets/css
имела бы:
-
alerts.css
-
badges.css
-
breadcrumbs.css
-
button-groups.css
-
buttons.css
-
carousel.css
-
close.css
-
code.css
-
component-animations.css
-
dropdowns.css
-
forms.css
-
glyphicons.css
-
grid.css
-
input-groups.css
-
jumbotron.css
-
labels.css
-
list-group.css
-
media.css
-
modals.css
-
navbar.css
-
navs.css
-
normalize.css
-
pager.css
-
pagination.css
-
panels.css
-
popovers.css
-
print.css
-
progress-bars.css
-
responsive-utilities.css
-
scaffolding.css
-
tables.css
-
theme.css
-
thumbnails.css
-
tooltip.css
-
type.css
-
utilities.css
-
wells.css
Существуют и другие функции, которые должны помочь вам в этом, но функция imports
является супер мощной, поскольку она позволяет добавлять директивы непосредственно в файл Grunt.