我有两个任务.
萨斯:
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任务,因为它使用的是sass生成的style.css文件.但是它不起作用,找不到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.
我不太了解:“异步运行提示” …“ …
我试着做一个干净的任务,作为无礼的部门,尽管效果很好.
我可以将它们粉碎成一个任务,但是cssopt花费的时间很长(当您给它指定URL时uncss相当慢),而且无论如何我只需要在生产中使用style.opt.css文件.
我正在使用最新版本(1.3.3)的gulp-sass.
解决方法:
“async run hints”… wat…
您需要向gulp系统暗示您的任务是异步的.您可以通过在任务函数中使用回调参数或返回事件流或Promise来实现.那就是您缺少的任务,它们当前返回未定义的状态,因此gulp希望它们立即完成.尝试
gulp.task('sass', function() {
return gulp.src('src/sass/**.{scss, sass}').…
标签:node-js,gulp,javascript 来源: https://codeday.me/bug/20191028/1954118.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。