Скомпилировать меньше файлов с помощью grunt-contrib-less не получится
Я использую Grunt для создания моего веб-проекта. Я установил пакет grunt-contrib-less
и добавил задачу на мой grunt.initConfig({..});
less : {
options: {
paths: ['js/base']
},
files: {
'js/base/*.css' : 'js/base/*.less'
}
}
когда я запускаю цель меньше через grunt less
, он работает без ошибок, но не компилирует меньше файлов в файл css.
Running "less:files" (less) task
Done, without errors.
Я установил пакет lessc через node. Выполнение lessc <source> <dest>
отлично работает.
В настоящее время я указал файл с файлом напрямую на один каталог, который содержит еще один файл для тестирования. Даже если я пишу все имя файла в файл, ничего не происходит...
Позже я хочу отсканировать весь каталог js и скомпилировать все новые измененные файлы *.less.
Я установил следующие версии:
grunt-cli v0.1.6
grunt v0.4.0
node v0.8.7
npm 1.1.49
BR,
mybecks
Ответы
Ответ 1
Шаблон glob js/base/*.css
не соответствует никаким файлам, поэтому адресата нет. Обычно такие задачи требуют объединения нескольких входов в один вывод. Также имейте в виду, что less
- это многозадачность, а files
в качестве дочернего элемента less
не выполняет то, что вы ожидаете. (он рассматривает его как цель, а не карту src/dest)
Если вы хотите преобразовать 1-1.less в .css, вы можете использовать динамическое расширение . (или вы можете определить каждую пару src/dest вручную, но кто хочет это сделать?)
В вашем случае:
less: {
options: {
paths: ['js/base']
},
// target name
src: {
// no need for files, the config below should work
expand: true,
cwd: "js/base",
src: "*.less",
ext: ".css"
}
}
Ответ 2
Я использовал решение Anthonies, но у stil была ошибка
Warning: Object true has no method indexOf
Если бы я изменил порядок, положив expand true
как второй, он дал мне ошибку
Unable to read "less" file
где "less" - значение первого элемента в моем списке.
Я решил это, изменив файлы в массив следующим образом:
less: {
options: {
paths: ["js/base"]
},
files: [{
expand: true,
cwd: "js/base",
src: ["**/*.less"],
dest: "js/base",
ext: ".css"
}]
},
Я использовал "grunt-contrib-less" : "^0.11.0"
Ответ 3
Это работает для меня, но изменено, чтобы отразить этот сценарий:
less: {
options: {
paths: ["js/base"]
},
files: {
expand: true,
cwd: "js/base",
src: ["**/*.less"],
dest: "js/base",
ext: ".css"
}
},