Привет! Есть такой код:
const gulp = require("gulp"),
plugins = require("gulp-load-plugins")(),
autoprefixer = require("autoprefixer"),
browserSync = require("browser-sync").create(),
del = require("del");
let isMap = process.argv.includes("--map"),
isBrowserSync = process.argv.includes("--sync");
function clean() {
return del("./build");
}
function html() {
return gulp.src("./src/*.pug")
.pipe(plugins.plumber())
.pipe(plugins.pug())
.pipe(plugins.htmlmin())
.pipe(gulp.dest("./build"));
}
function css() {
return gulp.src("./src/scss/style.scss", { sourcemaps: isMap })
.pipe(plugins.plumber())
.pipe(plugins.sass())
.pipe(plugins.postcss([autoprefixer()]))
.pipe(plugins.cleanCss({
level: 2
}))
.pipe(plugins.rename({
extname: ".min.css"
}))
.pipe(gulp.dest("./build/css", { sourcemaps: "." }))
.pipe(browserSync.stream());
}
function js() {
return gulp.src("./src/js/*.js", { sourcemaps: isMap })
.pipe(plugins.plumber())
.pipe(plugins.babel({
presets: ['@babel/env']
}))
.pipe(plugins.uglify())
.pipe(plugins.rename({
extname: ".min.js"
}))
.pipe(gulp.dest("./build/js", { sourcemaps: "." }));
}
function server() {
browserSync.init({
server: {
baseDir: "./build"
}
});
gulp.watch("./src/*.pug", gulp.series(html, refresh));
gulp.watch("./src/scss/**/*", css);
gulp.watch("./src/js/*.js", gulp.series(js, refresh));
}
function refresh(done) {
browserSync.reload();
done();
}
gulp.task("clean", clean);
gulp.task("html", html);
gulp.task("css", css);
gulp.task("js", js);
gulp.task("server", server);
let build = gulp.series(clean, css, js, html);
gulp.task("build", gulp.series(build, server));
Сейчас сборка запускается gulp build. Нужно сделать так, чтобы таск server срабатывал только если запуск будет gulp build --sync. Не знаю, как и куда этот флаг приткнуть. Буду признателен за подсказку.