Как вывести разный HTML-код на dev и prod в Gulp?

Для вывода разного HTML-кода на dev (разработка) и prod (продакшн) в Gulp.js можно использовать несколько подходов, в зависимости от требований проекта. Рассмотрим два распространенных подхода.

1. Использование препроцессоров:
- Установите препроцессор, например, Pug (ранее известный как Jade) или EJS, через npm.
- Создайте два отдельных файла для dev и prod версий HTML-кода, например, index-dev.pug и index-prod.pug.
- В Gulp.js настройте задачу для преобразования препроцессором выбранного файла в HTML.
- Пример для Pug:

     const gulp = require('gulp');
     const pug = require('gulp-pug');

     gulp.task('dev', function() {
       return gulp.src('src/index-dev.pug')
         .pipe(pug())
         .pipe(gulp.dest('dist'));
     });

     gulp.task('prod', function() {
       return gulp.src('src/index-prod.pug')
         .pipe(pug())
         .pipe(gulp.dest('dist'));
     });

- Запускайте соответствующую задачу для нужной среды:

     gulp dev

или

     gulp prod

2. Использование условных конструкций:
- Создайте единый HTML-файл с условными конструкциями, которые будут выводить разный код в зависимости от выбранной среды.
- В Gulp.js настройте задачу, которая будет заменять условные конструкции на соответствующий код.
- Пример:

     <!-- index-template.html -->
     <!DOCTYPE html>
     <html>
     <head>
       <title>Gulp Example</title>
     </head>
     <body>
     <!-- build:dev -->
     <h1>This code is for development</h1>
     <!-- /build -->
     
     <!-- build:prod -->
     <h1>This code is for production</h1>
     <!-- /build -->
     </body>
     </html>
     const gulp = require('gulp');
     const replace = require('gulp-replace');

     gulp.task('dev', function() {
       return gulp.src('src/index-template.html')
         .pipe(replace('<!-- build:dev -->', ''))
         .pipe(replace('<!-- /build -->', ''))
         .pipe(replace('<!-- build:prod -->', '<!--'))
         .pipe(gulp.dest('dist'));
     });

     gulp.task('prod', function() {
       return gulp.src('src/index-template.html')
         .pipe(replace('<!-- build:dev -->', '<!--'))
         .pipe(replace('<!-- /build -->', ''))
         .pipe(replace('<!-- build:prod -->', ''))
         .pipe(gulp.dest('dist'));
     });

- Запускайте соответствующую задачу для нужной среды, как и в первом подходе.

Оба подхода позволяют выводить разный HTML-код на dev и prod средах при использовании Gulp.js. Выбор конкретного подхода зависит от требований и предпочтений в вашем проекте.