背景
Elixir 3.0.0 がリリースされました。これにより Laravel 5.0.1 までのバージョンを使っていると gulp が動かなくなるケースがあります。ハマったので共有。
https://github.com/laravel/elixir/releases/tag/3.0.0
Laravel 5.0.1 までだとデフォルトで Elixir のバージョン指定が "*" となっているため、npm update すると Elixir は 3.0.0 にバージョンアップします。
https://github.com/laravel/laravel/blob/v5.0.1/package.json
queueTask の廃止
これまで Elixir には、独自タスクを追加するための仕組みとして、queueTask というメソッドが実装されていました。
例えば「デプロイ前にどこそこのディレクトリは一旦削除しておきたいな〜」など、Elixir が提供する機能の範囲内ではできないようなことを、Elixir のワークフローで行うための仕組みです。
var gulp = require('gulp');
var del = require('del');
var elixir = require('laravel-elixir');
elixir.extend('del', function(args) {
    gulp.task('del', function(cb) {
        del(args, cb);
    });
    return this.queueTask('del');
});
elixir(function(mix) {
    mix
        .del('public/assets/')
        // 中略
        .copy('resources/', 'public/assets/');
});
この、queueTask がなくなりました。
3.0.0 からは以下の様に変わります。
var gulp = require('gulp');
var del = require('del');
var Elixir = require('laravel-elixir');
var Task = Elixir.Task;
Elixir.extend('del', function(args) {
    new Task('del', function(cb) {
        del(args, cb);
    });
});
Elixir(function(mix) {
    mix
        .del('public/assets/')
        // 中略
        .copy('resources/', 'public/assets/');
});
phpunit は明示的に phpunit.xml を指定しなければならなくなった
これまで以下のように指定すれば暗黙的に phpunit.xml を参照していました。
var elixir = require('laravel-elixir');
elixir(function(mix) {
    mix.phpUnit();
});
しかし、3.0.0 からは以下のようにする必要があります。
var elixir = require('laravel-elixir');
elixir(function(mix) {
    mix.phpUnit('./phpunit.xml');
});
