改变Laravel的Gulp / Elixir`watch`任务

时间:2015-09-17 05:02:16

标签: laravel laravel-5 gulp semantic-ui gulp-watch

我想在我的新项目中使用Laravel的Elixir和Semantic UI。

在Semantic UI文档中,他们建议如何将gulp任务包含在当前项目的gulpfile中。在Laravel,他们(简要地)建议如何扩展Elixir。但是如何在 SELECT COUNT(DISTINCT idvisit) AS counted , AVG(actions) AS average , FROM_UNIXTIME(FLOOR( UNIX_TIMESTAMP(server_time)/900 ) * 900) AS final_server_time FROM visits GROUP BY final_server_time ORDER BY counted DESC, final_server_time LIMIT 1 命令中包含另一个gulp任务?

目前我正在运行watch,但我想在gulp watch watch-ui内加入watch-ui任务。有可能吗?

这是我目前的watch

gulpfile.js

2 个答案:

答案 0 :(得分:3)

如果我正确理解您的问题,您需要在Semantic UI任务中添加一些内容。但是,它们从未真正定义任务,而只是一个可以分配给任务的函数。

除非您要修补文件,否则您无法在semantic watch任务中包含任何内容,但您可以添加两个监视任务并确保它们都运行。

以下代码可让您执行所需操作:

var gulp     = require('gulp');
var elixir   = require('laravel-elixir');
var semantic = {
  watch: require('./resources/assets/semantic/tasks/watch'),
  build: require('./resources/assets/semantic/tasks/build')
};

// Define a task for the semantic watch function.
gulp.task('semantic-watch', semantic.watch);

// Define the main watch task, that is depended on the semantic-watch, this will run both watch tasks when you run this one.
gulp.task('watch', ['semantic-watch'], function() {
    // Do your own custom watch logic in here.
});

gulp.task('build-ui', semantic.build);

elixir(function(mix) {
  mix.task('build-ui');
});

您可以看到语义用户界面如何实际定义其watch任务应在此处使用监视功能:https://github.com/Semantic-Org/Semantic-UI/blob/master/gulpfile.js#L46

答案 1 :(得分:3)

如果您的意思是可以通过Elixir API添加自定义观察程序逻辑,那么简短答案是 ......

...但是,由于Elixir是Gulp之上的包装器,您可以直接修改gulp.tasks以获得相同的结果:只需重命名watch任务即可Elixir定义了其他内容,然后创建自己的watch任务,同时运行Elixir的手表和语义UI手表:

gulp.tasks['watch-elixir'] = gulp.tasks.watch;

gulp.task('watch', ['watch-elixir', 'watch-ui']);


在Elixir本身中,与自定义观察者最接近的是mix.task()的第二个参数,它使用一组文件路径来监视和重新触发任务。所以,虽然你可以做点像......

mix.task('build-ui', './resources/assets/semantic/src/**/*')

...会触发每次更改的完全重建,这与语义提供的更细粒度的watch任务不同。