gpt4 book ai didi

node.js - 为什么 Gulp 看不到该文件夹​​?

转载 作者:太空宇宙 更新时间:2023-11-04 00:10:53 26 4
gpt4 key购买 nike

我使用 Gulp 4 并且我有这个任务:

gulp.task('deploy', gulp.series('clean', 'handlers:all', 'deployment'));

该任务调用其他三个任务:

  1. 任务clean:删除构建文件夹。
  2. 任务handlers:all:重新创建构建文件夹并在其中添加文件。
  3. 任务部署:将构建文件夹的内容传输到另一个位置

我的部署任务有问题,如下所示:

gulp.task('deployment', done => {
gulp.src('./build/')
.pipe(gulp.dest('../other-project/'));
});

gulp.src() 找不到构建文件夹,因为它已被任务 clean 删除。当我设置超时时,没有问题。但这个解决方案很糟糕。

gulp.task('deployment', done => {
setTimeout(() => {
gulp.src('./build/')
.pipe(gulp.dest('../other-project/'));
}, 2000);
});

如何解决这个问题?

任务清理:

gulp.task('clean', done => {
del('./build/');
done();
});

任务处理程序:全部:

gulp.task('handlers:all', gulp.parallel('scripts', 'templates', 'styles', 'fonts', 'favicons', 'images', 'svg', 'dist'));

最佳答案

尝试将您的clean 任务替换为下一个任务:

gulp.task('clean', done => {
del('./build/').then(() => done());
});

它需要,因为 del 包返回一个 promise ,你应该告诉 gulp 等待它被解决。另一个选项可以是 del.sync .

我不确定其余的任务,但它应该遵循相同的流程。如果您有任何异步任务 - 在正确的位置调用 done

这可能对你有用async vs sync

希望这是有道理的。

关于node.js - 为什么 Gulp 看不到该文件夹​​?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49609604/

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