背景
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');
});