Gulp 4 迁移错误(您是否忘记发出异步完成信号?
Gulp 4 Migration Errors (Did you forget to signal async completion?)
我有一个 gulp 3 文件,我正在尝试升级到 gulp 4。当我这样做时,有些任务会起作用,而其他任务则不起作用。我得到的三个错误如下:
干净风格:
gulp.task('clean-styles', function (done) {
var files = config.temp + '**/*.css';
clean(files, done);
});
[23:47:05] The following tasks did not complete: clean-styles
[23:47:05] Did you forget to signal async completion?
SCSS-Watcher:
gulp.task('scss-watcher', function () {
gulp.watch([config.scss], ['styles']);
});
[23:51:27] 'scss-watcher' errored after 2.46 ms
[23:51:27] Error: watching ./src/client/styles/styles.scss: watch task has to be a function (optionally generated by using gulp.parallel or gulp.series)
样式:(如果我删除干净样式系列,这将起作用(
gulp.task('styles', gulp.series('clean-styles', function () {
log('Compiling SCSS --> CSS');
return gulp
.src(config.scss)
.pipe($.scss())
.pipe($.autoprefixer({ browsers: ['last 2 versions', '> 5%'] }))
.pipe(gulp.dest(config.temp));
}));
[23:52:42] The following tasks did not complete: styles, clean-styles
[23:52:42] Did you forget to signal async completion?
兽医:(作品(
gulp.task('vet', function () {
log('Analyzing source with ESLint');
return gulp
.src(config.js)
.pipe($.if(args.verbose, $.print()))
.pipe($.eslint())
.pipe($.eslint.format())
.pipe($.eslint.failOnError());
});
功能:
function clean(path, done) {
log('Cleaning: ' + $.util.colors.blue(path));
del(path, done);
}
function log(msg) {
if (typeof(msg) === 'object') {
for (var item in msg) {
if (msg.hasOwnProperty(item)) {
$.util.log($.util.colors.blue(msg[item]));
}
}
}
else {
$.util.log($.util.colors.blue(msg));
}
}
我一定错过了什么。谁能填补我错过的东西?
干净样式
del
不接受回调函数。它返回您必须在任务中返回的Promise
:
function clean(path) {
log('Cleaning: ' + $.util.colors.blue(path));
return del(path);
}
gulp.task('clean-styles', function () {
var files = config.temp + '**/*.css';
return clean(files);
});
scss-watcher
gulp.watch()
不再支持任务名称数组。你必须给它传递一个函数,gulp.series()
或gulp.parallel()
:
gulp.task('scss-watcher', function () {
gulp.watch([config.scss], gulp.series('styles'));
});
风格
应该使用上述clean-styles
更改。
朋友们,这是解决此问题的方法:
我们需要调用回调函数(任务和匿名(
function electronTask(callbackA)
{
return gulp.series(myFirstTask, mySeccondTask, (callbackB) =>
{
callbackA();
callbackB();
});
}
相关文章:
- esri javascript异步打印
- JavaScript异步问题
- $translateProvider.useStaticFilesLoader的Angular Translate异步定
- 异步facebook功能
- 异步并行错误
- 在Redux中,我应该在哪里编写复杂的异步流
- 角度异步http自动完成
- 如何从SeleniumWebdriver获取异步Javascript响应
- 如何使用异步调用更改工厂的变量
- 在等待异步任务时永久循环
- 如何在异步函数中使用javascript对象
- 调用后不异步Ajax忽略函数
- learnyounode#9杂耍异步
- 异步获取数据使用JavaScript同步获取数据
- C++信号回调(类似javascript)
- Meteor:异步回调问题
- 如何以异步方式打印q中的项目
- javascript函数中的异步与同步.(Node.js)
- Gulp 4 迁移错误(您是否忘记发出异步完成信号?
- 信号异步完成与Gulp, Babel和config.yml