node.js - Gulp 4 错误:“您是否忘记发出异步完成信号?”
问题描述
我正在做一个需要将.sass
文件编译成.css
文件的小项目。我之前使用过 Gulp 并且很喜欢它,但我的旧gulpfile.js
版本不再工作了,因为 Gulp 从第 4 版开始发生了变化。
我做了一个新的gulpfile.js
:
var gulp = require('gulp'),
sass = require('gulp-sass'),
rename = require('gulp-rename');
var paths = {
styles: {
src: 'src/scss/*.scss',
dest: 'build/css'
}
};
function styles() {
return gulp
.src(paths.styles.src, {
sourcemaps: true
})
.pipe(sass())
.pipe(rename({
basename: 'main',
suffix: '.min'
}))
.pipe(gulp.dest(paths.styles.dest));
}
function watch() {
gulp
.watch(paths.styles.src, styles);
}
var syncConfig = {
server: {
baseDir : './',
index : 'index.html'
},
port : 3000,
open : false
};
// browser-sync
function server() {
init(syncConfig);
}
var build = gulp.parallel(styles, watch, server);
gulp
.task(build);
gulp
.task('default', build);
我有一个“您是否忘记发出异步完成信号?” 控制台返回的错误。
我的错误在哪里?
解决方案
缺少两件事:browsersync 变量browsersync = require('browser-sync').create()
和服务器函数的回调:
function server(done) {
if (browsersync) browsersync.init(syncConfig);
done();
}
它将SASS编译为 CSS,仍然存在这个问题:在main.scss
.
这是整个代码:
var gulp = require('gulp'),
browsersync = require('browser-sync').create(),
sass = require('gulp-sass'),
rename = require('gulp-rename');
var paths = {
styles: {
src: 'src/scss/*.scss',
dest: 'build/css'
}
};
function styles() {
return gulp
.src(paths.styles.src, {
sourcemaps: true
})
.pipe(sass())
.pipe(rename({
basename: 'main',
suffix: '.min'
}))
.pipe(gulp.dest(paths.styles.dest));
}
function watch() {
gulp
.watch(paths.styles.src, styles);
}
var syncConfig = {
server: {
baseDir : './',
index : 'index.html'
},
port : 3000,
open : false
};
// browser-sync
function server(done) {
if (browsersync) browsersync.init(syncConfig);
done();
}
var build = gulp.parallel(styles, watch, server);
gulp
.task(build);
gulp
.task('default', build);
推荐阅读
- c++ - 如何让 getc(stdin) 返回 ctrl 字符?
- r - R 抓取 Rvest 获取文本
- c++ - 前向声明时“struct”和“class”关键字是否相同?
- java - Kotlin - 获取资源适用于 macOS,但不适用于 Windows
- mysql - 如何计算表中列的日期间隔的 AVG、MIN 和 MAX?
- python - 添加遥控器 mininet cod
- sql - SQL Pull COLUMNS 满足特定条件而不是 ROWS
- mips - MIPS 浮点数、无穷大和 nan 练习
- caching - 如何在 Apollo 中为 GraphQL 订阅设置数据源而无需长时间运行缓存
- asp.net-core - 允许第 3 方租户用户登录我们的应用程序