Это мое сообщение об ошибке.
Следующие задачи не были выполнены: scssTask, jsTask, imgTask Вы забыли сообщить о завершении асинхронного?
Я знаю, что этоо явном сигнале завершения задачи для каждой функции. Я думаю, что сделал это в последний exports.default
, может быть, это неправильно. но я новичок в глотке. кто-то, пожалуйста, помогите мне решить эту ошибку.
это мой gulpfile.js
const { src, dest, watch, series, parallel } = require('gulp');
var uglify = require('gulp-uglify');
const sourcemaps = require('gulp-sourcemaps');
const sass = require('gulp-sass');
const postcss = require('gulp-postcss');
const autoprefixer = require('autoprefixer');
const cssnano = require('cssnano');
const imagemin = require('gulp-imagemin');
const newer = require('gulp-newer');
const cp = require("child_process");
const browserSync = require('browser-sync').create();
const files = {
scssPath: '_sass/**/*.scss',
cssPath: 'assets/css/**/*.scss',
jsPath: 'assets/js/main.js',
imgPath: 'assets/img/**/*'
}
function scssTask(){
return src(files.scssPath)
.pipe(sourcemaps.init()) // initialize sourcemaps first
.pipe(sass().on('error', sass.logError))
.pipe(postcss([ autoprefixer(),cssnano() ]))
.pipe(sourcemaps.write('.')) // write sourcemaps file in current directory
.pipe(dest('_site/assets/css/')) // put final CSS in dist folder
.pipe(browserSync.reload({stream:true}))
}
function jsTask(){
return src([
files.jsPath
])
.pipe(uglify())
.pipe(dest('_site/assets/js/'))
.pipe(browserSync.reload({stream:true}))
}
function imgTask() {
return src(files.imgPath)
.pipe(newer("_site/assets/img/"))
.pipe(imagemin())
.pipe(dest("_site/assets/img/"))
.pipe(browserSync.reload({stream:true}))
}
function jekyll() {
return cp.spawn("bundle", ["exec", "jekyll", "build"], { stdio: "inherit" });
}
function watchTask(){
watch(files.scssPath, scssTask);
watch(files.jsPath, jsTask);
watch(['_includes/**', '_layouts/**/*', 'pages/**', '*.html'], series(jekyll, browserSyncReload));
watch(files.imgPath, imgTask);
}
function browserSyncServe(done) {
browserSync.init({
server: {
baseDir: "_site"
}
});
done();
}
function browserSyncReload(done) {
browserSync.reload();
done();
}
exports.default = series(
parallel(jekyll, scssTask, jsTask, imgTask),
browserSyncServe,
watchTask
);