Добрый день!
Помогите, пожалуйста, разобраться с ошибкой в Gulp, которая возникает при попытке сборки проекта через npm run build.
После запуска команды появляется ошибка "AssertionError [ERR_ASSERTION]: Task never defined: clean".
const gulp = require("gulp");
const plumber = require("gulp-plumber");
const sourcemap = require("gulp-sourcemaps");
const less = require("gulp-less");
const postcss = require("gulp-postcss");
const autoprefixer = require("autoprefixer");
const sync = require("browser-sync").create();
const csso = require("gulp-csso");
const rename = require("gulp-rename");
const terser = require("gulp-terser");
const imagemin = require("gulp-imagemin");
const webp = require("gulp-webp");
const svgstore = require("gulp-svgstore");
const posthtml = require("gulp-posthtml");
const include = require("posthtml-include");
const htmlmin = require("gulp-htmlmin");
const del = require("del");
//Clean
(async () => {
const deletedDirectoryPaths = await del(['build']);
})();
//Copy
const copy = () => {
return gulp.src([
"source/fonts/**/*.{woff, woff2}",
"source/img/**",
"source/js/**"
], {
base: "source"
})
.pipe(gulp.dest("build"));
}
exports.copy = copy;
// Styles
const styles = () => {
return gulp.src("source/less/style.less")
.pipe(plumber())
.pipe(sourcemap.init())
.pipe(less())
.pipe(postcss([
autoprefixer()
]))
.pipe(csso())
.pipe(rename("styles.min.css"))
.pipe(sourcemap.write("."))
.pipe(gulp.dest("build/css"))
.pipe(sync.stream());
}
exports.styles = styles;
// Server
const server = (done) => {
sync.init({
server: {
baseDir: 'build'
},
cors: true,
notify: false,
ui: false,
});
done();
}
exports.server = server;
//HTML
const html = () => {
return gulp
.src("source/*.html")
.pipe(posthtml([
include()
]))
.pipe(htmlmin({
collapseWhitespace: true,
removeComments: true
}))
.pipe(gulp.dest("source"));
}
exports.html = html;
//JS
const scripts = () => {
return gulp.src('js/nav-open.js')
.pipe(terser())
.pipe(rename("nav-open.min.css"))
.pipe(gulp.dest("js"))
.pipe(sync.stream());
}
exports.scripts = scripts;
//Imagemin
const images = () => {
return gulp.src("source/img/**/*.{jpg,png,svg}")
.pipe(imagemin([
imagemin.optipng({optimizationLevel: 3}),
imagemin.mozjpeg({progressive: true}),
imagemin.svgo({
plugins: [
{removeViewBox: true},
{cleanupIDs: false}
]
})
]))
.pipe(gulp.dest("source/img"))
}
exports.images = images;
//WebP
const createWebp = () => {
return gulp.src("source/img/**/*.{png,jpg}")
.pipe(webp({quality: 90}))
.pipe(gulp.dest("source/img"))
}
exports.webp = createWebp;
//SVG-sprite
const sprite = () => {
return gulp.src("source/img/**/icon-*.svg")
.pipe(svgstore())
.pipe(rename("sprite.svg"))
.pipe(gulp.dest("build/img"))
}
exports.sprite = sprite;
// Watcher
const watcher = () => {
gulp.watch("source/less/**/*.less", gulp.series("styles"));
gulp.watch("source/*.html").on("change", sync.reload);
}
exports.default = gulp.series(
styles, scripts, server, watcher
);
//const build = gulp.series(
//'clean',
//'copy',
//'slyles',
//'html',
//'scripts'
//);
//exports.build = build;
gulp.task('build', gulp.series('clean', 'copy', 'styles', 'html', 'sprite', 'images', 'createWebp', 'scripts'));
gulp.task("start", gulp.series("build", "server"));