我在gulpfile.js下面有这个。当我使用'gulp start'运行应用程序时,它显示start不是一个函数。Glup-cli版本我使用V4.0.0
const gulp = require('gulp');
const concat = require('gulp-concat');
const browserSync = require('browser-sync').create();
const scripts = require('./scripts');
const styles = require('./styles');
// Some pointless comments for our project.
var devMode = false;
gulp.task('css', function() {
gulp.src(styles)
.pipe(concat('main.css'))
.pipe(gulp.dest('dist/css'))
.pipe(browserSync.reload({
stream: true
}));
});
gulp.task('js', function() {
gulp.src(scripts)
.pipe(concat('scripts.js'))
.pipe(gulp.dest('./dist/js'))
.pipe(browserSync.reload({
stream: true
}));
});
gulp.task('html', function() {
return gulp.src('./src/templates/**/*.html')
.pipe(gulp.dest('./dist/'))
.pipe(browserSync.reload({
stream: true
}));
});
gulp.task('build', function() {
gulp.start(['css', 'js', 'html'])
});
gulp.task('browser-sync', function() {
browserSync.init(null, {
open: false,
server: {
baseDir: 'dist',
}
});
});
gulp.task('start', function() {
devMode = true;
gulp.start(['build', 'browser-sync']);
gulp.watch(['./src/css/**/*.css'], ['css']);
gulp.watch(['./src/js/**/*.js'], ['js']);
gulp.watch(['./src/templates/**/*.html'], ['html']);
});
2条答案
按热度按时间lb3vh1jj1#
gulp.start
在v4中已被弃用。根据您的需要,您可以使用gulp.series
或gulp.parallel
。这个问题可能是this one的重复,但由于这个问题还没有得到公认的答案,我只是重复Mark的答案。
zynd9foi2#
正如Derek所说,在gulp的v4中,你必须使用gulp.series或gulp.parallel;
v4的另一个不同之处是,当任务完成时,你需要明确,你有6种方法来做到这一点..我将链接这个答案,以获得一个非常好的解释Gulp error: The following tasks did not complete: Did you forget to signal async completion?
穆罕默德的解释可能有助于深入了解原因,你可以找到两个:Migrate gulp.start function to Gulp v4
我已经尝试了这个解决方案,但它需要更多的代码,所以我将在这里写我的主要变化:
在所有其他任务中,我只是添加了 done() 函数(任务html除外,因为它在任务完成时已经显式返回)
希望这对其他人有帮助,祝你有美好的一天:)