javascript - Gulp 错误:以下任务未完成:异步问题
问题描述
我是 gulp 的新手,在将 gulp-sass 更新到 5.0 后出现此错误。我尝试了与互联网不同的东西,但没有让它发挥作用。
Gulp 版本:4.0.0 Gulp 萨斯:5.0.0 萨斯:1.38.1
这是我的 gulpfile.js
var sourcemaps = require('gulp-sourcemaps');
var mode = require('gulp-mode')();
var browserSync = require('browser-sync').create();
var sass = require('gulp-sass')(require('sass'));
var $ = require('gulp-load-plugins')();
var autoprefixer = require('autoprefixer');
var isProduction = mode.production();
var sassPaths = [
// 'node_modules/foundation-sites/scss',
// 'node_modules/motion-ui/src'
];
function sass() {
return gulp.src('assets/sass/theme.scss')
.pipe(mode.development(sourcemaps.init()))
.pipe($.sass.sync(({
includePaths: sassPaths,
outputStyle: 'compressed' // if css compressed **file size**
})).on('error', $.sass.logError))
.pipe($.postcss([
autoprefixer({ overrideBrowserslist: ['last 2 versions', 'ie >= 9'] })
]))
.pipe(mode.development(sourcemaps.write()))
.pipe(gulp.dest('assets/css'))
.pipe(browserSync.stream());
};
function serve() {
browserSync.init({
server: "./"
});
gulp.watch("assets/sass/**/*.{scss,sass}", sass);
gulp.watch("*.html").on('change', browserSync.reload);
}
gulp.task('sass', sass);
gulp.task('serve', gulp.series('sass', serve));
gulp.task('default', gulp.series('sass', serve));
if( isProduction ){
gulp.task('default', gulp.series(sass));
}
解决方案
你有几个问题:
不要命名你的任务
sass
和你的require
对象sass
。为其中一个选择不同的名称。这很奇怪:
gulp.task('sass', sass);
gulp.task('serve', gulp.series('sass', serve));
gulp.task('default', gulp.series('sass', serve));
所有你需要的是
gulp.task('serve', gulp.series(sass2, serve));
gulp.task('default', gulp.series(sass2, serve));
只需使用您的任务名称,这里我只是将其重命名为sass2
,无需将它们称为字符串。
此外,您的任务serve
与您的任务没有什么不同default
...
推荐阅读
- python - 如何在 Python/Scikit Learn 中转换输入的结构回归
- c - 这个程序的输出是什么,为什么?
- elasticsearch - 在 ElasticSeach 中引用包含 json 数据的“字符串”字段
- python - 按特定值排序
- path-finding - 路径查找器,但获取所有可用路径
- c++ - *ptr2 = ptr 是什么意思?
- javascript - chrome js 和 jquery:添加链接?
- reactjs - 如何在带有图例的圆环图中间显示标题?(react-highcharts)
- c# - 如果字符数超过 20 C#,则从最后一个逗号拆分字符串
- if-statement - 如果用户在线或离线,如何使用 TWIG 显示?