Javascript 狼吞虎咽+;Sass&x2B;Del-随机行为
我不明白为什么这个简单的脚本会根据Javascript 狼吞虎咽+;Sass&x2B;Del-随机行为,javascript,node.js,gulp,gulp-sass,Javascript,Node.js,Gulp,Gulp Sass,我不明白为什么这个简单的脚本会根据del插件设置的不同而表现出不同的行为 当我启动gulpsass时,我只想清理public/cssdir并从sass“编译”css。到目前为止一切顺利: gulp.task('clean-css', del.bind(null,['./public/css'])); gulp.task('sass', ['clean-css'], function () { return gulp.src('./resources/sass/**/*.scss')
del
插件设置的不同而表现出不同的行为
当我启动gulpsass
时,我只想清理public/css
dir并从sass“编译”css。到目前为止一切顺利:
gulp.task('clean-css', del.bind(null,['./public/css']));
gulp.task('sass', ['clean-css'], function () {
return gulp.src('./resources/sass/**/*.scss')
.pipe(plugins.sass({outputStyle: 'compressed'}))
.pipe(gulp.dest('./public/css'));
});
但是,如果将clean css任务更改为:
gulp.task('clean-css', del(['./public/css']));
那么它只会每隔一段时间起作用。第一次清理并生成css,下一次删除目录但不生成任何内容
那么,del(['./public/css'])
和del.bind(null,['./public/css'])
之间有什么区别呢?为什么它会以这种方式影响脚本
更新:
当它没有生成任何内容时,我看到此错误:
events.js:141
throw er; // Unhandled 'error' event
^
Error: ENOENT: no such file or directory, open 'C:\Users\XXXX\gulp-project\public\css\style.css'
at Error (native)
tl;dr
如果没有提供回调,Gulp不知道何时完成del
。如果在del
之前运行sass
任务,并且实际存在要删除的文件,则无论是否使用bind
,del
每隔一段时间都有效
根据,您还应该向
del
提供回调方法。这是指任务完成时:
var gulp = require('gulp');
var del = require('del');
gulp.task('clean:mobile', function (cb) {
del([
'dist/report.csv',
// here we use a globbing pattern to match everything inside the `mobile` folder
'dist/mobile/**/*',
// we don't want to clean this file though so we negate the pattern
'!dist/mobile/deploy.json'
], cb);
});
gulp.task('default', ['clean:mobile']);
我假设每次运行任务的顺序都不同,因为gulp不知道在没有提供回调的情况下,del
何时完成。根据报告:
如果要创建一个系列,其中任务按特定顺序运行,则需要做两件事:
null
删除del
?