Laravel elixir根据watch表达式调用任务

Laravel elixir calling task according to watch expression

假设我们在 gulpfile.js 中有这种(简化的)长生不老药:

mix
.bower()
.less('test.less');

问题是无论何时更改任何文件,都会执行 bowerless 任务。
有没有办法只在某个监视路径中的文件发生更改时才执行 less 并且仅在例如 bower.json 文件发生更改时才执行 bower?

真正的问题是,对于其他任务,我的 watch 进程变得非常慢,每次我更新一个 less 文件(这是无关紧要的)时,bower 都是 运行。

谢谢!

您可以定义另一个任务处理程序来 运行 Bower 相关任务。以下博客 post 中的作者说明了如何做到这一点。 http://laravelcoding.com/blog/laravel-5-beauty-using-bower#09-gulp-bs

我个人使用复制任务将所需文件从 bower_components 复制到 assets 目录,因为我希望我的 assets 目录只有我使用的文件。

所以我有我的定义

mix.copy('bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js','public/assets/js/bootstrap-datepicker.min.js');
mix.copy('bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css','public/assets/css/bootstrap-datepicker.min.css');

正如 Jeffrey Way 解释的那样 here

这确实是bower任务的问题。所以我假设 imagemin 也是如此。

我将创建一个新任务并尽快将其开源并更新此答案。