Работа с файлами в Gulp

Gulp позволяет брать группу файлов, производить с этой группой некоторую операцию, а затем измененные файлы размещать по новому адресу.

Для этого предназначены специальные функции src и dest. Давайте для начала импортируем их из нашей библиотеки:

let {src, dest} = require('gulp');

Функция src позволяет получить указанный файл:

function task(cb) { return src('src/styles.css'); // return вместо вызова cb }

С этим файлом затем по цепочке можно выполнять различные операции с помощью функции pipe. Схематично это выглядит следующим образом:

function task(cb) { return src('src/styles.css') .pipe(операция1) .pipe(операция2) .pipe(операция3) }

Последний вызов pipe в цепочке заканчивается функцией dest, задающей папку, в которую отправится результат проведенных операций:

function task(cb) { return src('src/styles.css') .pipe(операция1) .pipe(операция2) .pipe(операция3) .pipe(dest('dist')); // отправим в папку dist }

Каждая операция производит некоторую манипуляцию с нашим файлом. Например, можно сначала преобразовать LESS в CSS, затем добавить префиксы к свойствам CSS, затем минимизировать полученный CSS и так далее.

Для каждой операции предназначен свой npm плагин для Gulp. Плагины нужно устанавливать и подключать к нашему файлу. Изучением различных плагинов мы займемся в следующих уроках.

Пока для разминки давайте возьмем наш файл и отправим его копию в папку dist, как будто проделав над ним некоторые операции:

function task(cb) { return src('src/styles.css') .pipe(dest('dist')); }

Сделайте три СSS файла. Сделайте три публичных задачи. Пусть каждая задача создает копию одного из наших файлов в заданной папке.

Массив путей к файлам

Функция src параметром может принимать не один файл, а сразу несколько в виде массива:

function task(cb) { let files = [ 'src/styles1.css', 'src/styles2.css' ]; return src(files) .pipe(dest('dist')); }

Сделайте три СSS файла. Сделайте задачу, которая сделает копию наших файлов в указанной папке.