【发布时间】:2016-10-22 16:50:42
【问题描述】:
Gulp 几乎可以很好地工作。它正确地监视和运行任务,除非它正在运行一个任务,它不会总是监视与同一任务相关的文件以便在最后一个任务完成时再次运行该任务。
[08:30:51] Starting 'composer'...
composer task
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. Run update to update them.
Nothing to install or update
Generating autoload files
Process exited with code 0
[08:30:53] Finished 'composer' after 1.62 s
编辑:不要介意短暂的时间;这只是一个不好的例子。我真正运行的任务在 10 到 15 秒内运行,在此期间我可以进行其他相关更改并保存是很现实的。
这是在编辑 composer.lock 文件时触发的。
在编辑 composer.lock 文件并且任务开始运行后,在输出“composer task”期间再次编辑和保存 composer.lock,
预期:任务完成后再次运行
实际:任务完成并且不会重新运行以适应此后发生的更改
我在 Ubuntu 上使用 gulp watch。
【问题讨论】:
-
我理解您的问题,但您为什么要这样做?我的意思是运行部分的编辑和保存。
-
为了一个现实的例子,假设我正在运行一个将 TypeScript 编译成 JavaScript 的任务。如果我写了一些东西并保存,那么编译器任务就会运行,然后在它运行时我进行一些快速的相关更改,然后第一个任务完成,但任务不会再次运行:那么编译的 JS 文件的状态将不匹配源文件,因为编译任务没有再次运行。
-
您在 1.62 秒内快速做出相关更改?我希望有人对此有答案,因为我也对此感兴趣,但我无法想象一个解决方案,因为您通常不会在编译时更改代码。
-
对不起,这个例子很糟糕。我实际使用的任务是运行 10-15 秒。而且我认为如果编译是在文件更改时自动进行的,那么您在编译时会更改很多代码,因为您可能在编写和保存时没有编译的意图,而 gulp 任务仍在为您编译。
-
我认为在其他地方这将是一个很好的讨论话题。自动化与自己触发编译的旧方式
标签: javascript gulp gulp-watch