Для вывода разного 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. Выбор конкретного подхода зависит от требований и предпочтений в вашем проекте.