gpt4 book ai didi

javascript - 什么是 gulp 任务异步运行提示?

转载 作者:搜寻专家 更新时间:2023-10-31 23:42:35 24 4
gpt4 key购买 nike

我有两个任务。

萨斯:

gulp.task('sass', function() {
gulp.src('src/sass/**.{scss, sass}')
.pipe(sourcemaps.init())
.pipe(sass({outputStyle: 'compressed'}))
.on('error', handleErrors)
.pipe(autoprefixer())
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('dist/css'))
.pipe(browserSync.reload({stream: true}))
});

和CSS优化任务:

gulp.task('cssopt', ['sass'], function() {
gulp.src('dist/css/style.css')
.pipe(uncss({html: ['http://example.dev//']}))
.pipe(cmq({log: true}))
.pipe(shrink())
.pipe(rename({suffix: '.opt'}))
.pipe(gulp.dest('dist/css'))
});

cssopt 任务依赖于 sass 任务,因为它使用的是 style.css 文件,sass > 生成。但它不会工作,它找不到 style.css 文件,因为它不存在。如果我先单独运行 sass,那么 cssopt 会起作用,因为 style.css 就在那里。

来自文档(强调我的):

An array of tasks to be executed and completed before your task will run.

文档还说:

Note: Are your tasks running before the dependencies are complete? Make sure your dependency tasks are correctly using the async run hints: take in a callback or return a promise or event stream.

我不太明白:“异步运行提示”...什么...

我尝试为 sass 运行一个 clean 任务作为 deps,但效果很好。


我可以将这些分解成一个任务,但是 cssopt 需要相当长的时间(uncss 当你给它一个 URL 时它非常慢),我需要 style.opt.css 无论如何只在生产中使用。

我使用的是 gulp-sass 的最新版本 (1.3.3)。

最佳答案

"async run hints"... wat...

您需要提示 gulp 系统您的任务是异步。您可以通过为您的任务函数获取回调参数,或通过返回事件流或 promise 来实现。这就是您的任务所缺少的,它们当前返回 undefined 因此 gulp 期望它们立即完成。尝试

gulp.task('sass', function() {
return gulp.src('src/sass/**.{scss, sass}').…

关于javascript - 什么是 gulp 任务异步运行提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28526354/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com