Подтвердить что ты не робот

Скомпилировать меньше файлов с помощью 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

4b9b3361

Ответ 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"
    }
},