Задача Grunt с grunt-contrib-less — как скомпилировать несколько таблиц стилей, сохранив исходное имя файла .less

Я создаю веб-сайт с Bootstrap, используя меньше. Я использую grunt для автоматизации задач.

В моем gruntfile.js у меня есть эта часть:

less: {
  compileCore: {
    options: {
      strictMath: true,
      sourceMap: true,
      outputSourceFiles: true,
      sourceMapURL: '<%= pkg.name %>.css.map',
      sourceMapFilename: 'dist/css/<%= pkg.name %>.css.map'
    },
    src: 'less/bootstrap.less',
    dest: 'dist/css/<%= pkg.name %>.css'
  },
  compileBrandingStyles: {
    options: {
      strictMath: true,
      sourceMap: false,
      outputSourceFiles: false
    },
    src: 'less/branding/**/*.less',
    dest: 'dist/css/<%= what do I put here? %>.css'
  }
},

В «compileBrandingStyles» я хотел бы получить все файлы *.less в папке и скомпилировать их в отдельные файлы css с их исходными именами файлов. Нет конкатенации.

В папке: less/branding у меня есть x файлов .less:

theme-1.less
theme-2.less
theme-3.less
theme-4.less

Я хотел бы вывести их в папку dist/css/ следующим образом:

theme-1.css
theme-2.css
theme-3.css
theme-4.css

Итак, как мне написать эту часть, чтобы сохранить их имена файлов?

dest: 'dist/css/<%= what do I put here? %>.css'

person Meek    schedule 01.03.2017    source источник


Ответы (1)


Вместо этого измените конфигурацию compileBrandingStyles Target на это:

// ...
compileBrandingStyles: {
    options: {
        strictMath: true,
        sourceMap: false,
        outputSourceFiles: false
    },
    files: [{
        expand: true,
        cwd: 'less/branding/',
        src: ['**/*.less'],
        dest: 'dist/css/',
        ext: '.css'
    }]
}

Дополнительную информацию об этом см. в документах.


ИЗМЕНИТЬ

Если вы не хотите, чтобы вложенные папки были включены в папку назначения, используйте flatten.

// ...
compileBrandingStyles: {
    options: {
        strictMath: true,
        sourceMap: false,
        outputSourceFiles: false
    },
    files: [{
        expand: true,
        cwd: 'less/branding/',
        src: ['**/*.less'],
        dest: 'dist/css/',
        ext: '.css',
        flatten: true // <-- Remove all path parts from generated dest paths.
    }]
}
person RobC    schedule 03.03.2017
comment
Это потрясающе. Большое спасибо за твою помощь. - person Meek; 03.03.2017