gpt4 book ai didi

javascript - 从 gulp-watch 的 .on() 事件运行任务

转载 作者:行者123 更新时间:2023-12-03 00:28:41 25 4
gpt4 key购买 nike

我正在尝试在 gulp 中设置一个监视进程,该进程将修改的文件作为参数。

我尝试使用 gulp.watch() 中的“.on('change'...)”钩子(Hook),因为似乎没有任何其他方法可以获取触发该事件的文件的完整路径观看事件。这允许我访问已更改的文件,但我目前不知道如何执行任务。我在其他地方读到 gulp.start() 曾经可以工作,但从 gulp 4.0 开始,此功能似乎已被删除。

我还查看了 gulp-run,并尝试从命令行执行任务,但似乎也无法正常工作。

这是我正在使用的精简版:

gulp.task("watch", function() {
return gulp.watch("<path and filemask to watch>")
.on("change", function(file) {
runTaskHere(file);
})
}

我可以通过命令行中的“gulp watch”运行这个观察器,然后修改作为路径和文件掩码一部分的文件。这一切都很好。我可以打印出文件参数并且它是正确的。我根本无法从此时开始执行任务。如果我稍微切换一下代码,而不是使用匿名函数,而是使用 gulp.series() 管道,任务将按预期执行,但我无权访问已修改文件的路径和文件名。

基本上我想做的是根据修改后的文件的路径信息从 gulpfile.js 中手动运行 gulp 任务,并让它本质上从包装函数( .on(... )从 watch 上 Hook )。我知道 gulp 的设计者一直在试图摆脱这种模式,但在某些情况下我仍然看不到其他选择。如果无法实现我在这里所做的事情,那么 gulp 中是否还有其他选项可以实现我在这里尝试做的事情?

我唯一的选择是为每个目录创建一个监视(基于我的解析规则)并忘记尝试读取路径信息吗?

最佳答案

由于 gulp 任务只是函数,为什么不呢:

 function mytask() {
// do something here
}

gulp.task("sometask", mytask)

然后您稍后只需调用该函数即可开始任务...

on("change", function(file) {
mytask(file);
}

关于javascript - 从 gulp-watch 的 .on() 事件运行任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53963451/

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