Gulp EN0ENT 清理任务后缺少目录错误?

Gulp EN0ENT missing directory error after clean task?

我正开始为一个项目学习 Gulp。我认为这是一个新手错误,但我一直无法弄清楚。

这是我的 gulpfile.js:

const { series, parallel, src, dest } = require('gulp');
const del = require('del');

function clean(cb) {
  del('./dist', cb())
}

function durp() {
  return src('src/index.html')
    .pipe(src('src/test.hbs'))
    .pipe(dest('./dist'));
}

exports.default = series(
  clean,
  parallel(
    durp,
  )
);

这是我收到的错误。它恰好在我 运行 脚本时每隔一段时间发生一次。下次我 运行 它,它工作正常。 冲洗,重复:

$ gulp
[23:15:50] Using gulpfile ~/Projects/test/gulpfile.js
[23:15:50] Starting 'default'...
[23:15:50] Starting 'clean'...
[23:15:50] Finished 'clean' after 644 μs
[23:15:50] Starting 'durp'...
[23:15:50] 'durp' errored after 26 ms
[23:15:50] Error: ENOENT: no such file or directory, stat './dist'
[23:15:50] 'default' errored after 29 ms

$ gulp
[23:15:51] Using gulpfile ~/Projects/test/gulpfile.js
[23:15:51] Starting 'default'...
[23:15:51] Starting 'clean'...
[23:15:51] Finished 'clean' after 431 μs
[23:15:51] Starting 'durp'...
[23:15:51] Finished 'durp' after 27 ms
[23:15:51] Finished 'default' after 30 ms

$ 

这很奇怪,因为我不希望出现竞争条件,因为我是 运行ning 系列,而且无论如何清洁任务总是 运行ning 首先。嗯。

del 不接受回调,但 returns 接受承诺。您的 clean 函数应如下所示:

function clean() {
  return del('./dist');
}