Как в gulp-ejs для разных страниц передать разные данные?

В Gulp.js для работы с шаблонами HTML, такими как EJS, используется плагин gulp-ejs. Чтобы передать разные данные на разные страницы, можно воспользоваться функционалом этого плагина.

Перед тем, как приступить к передаче данных, необходимо установить плагин gulp-ejs с помощью команды:

npm install --save-dev gulp-ejs

После установки плагина, можно приступить к созданию задачи в Gulp, которая будет компилировать EJS-шаблоны и передавать данные на страницы.

Пример задачи Gulp для работы с gulp-ejs:

const gulp = require('gulp');
const ejs = require('gulp-ejs');
const data = require('gulp-data');

gulp.task('ejs', function() {
  return gulp.src('src/templates/*.ejs')
    .pipe(data(function(file) {
      // Возвращаем объект с данными, которые нужно передать в шаблон
      return require('./src/data/' + path.basename(file.path) + '.json');
    }))
    .pipe(ejs())
    .pipe(gulp.dest('dist'));
});

В этом примере мы используем пакет gulp-data, чтобы передать данные из JSON-файлов в EJS-шаблоны. JSON-файлы с данными должны находиться в папке src/data и иметь такие же имена, как и EJS-шаблоны.

Чтобы передать разные данные на разные страницы, мы определяем функцию, которая возвращает объект с данными, основываясь на имени EJS-шаблона. В этом примере мы предполагаем, что у каждого EJS-шаблона есть соответствующий JSON-файл с данными.

Затем мы проводим компиляцию EJS-шаблонов с помощью gulp-ejs и сохраняем результат в папке dist.

Для запуска задачи Gulp достаточно выполнить команду gulp ejs.

Таким образом, используя плагин gulp-ejs и пакет gulp-data, мы можем передать разные данные на разные страницы EJS-шаблонов в Gulp.js. Это позволяет динамически создавать содержимое страниц на основе различных данных.