## New and Updated - Laravel Elixir source was completely rewritten in ES2015. - Added mix.rollup() installable task. This is ideal for those hoping to write and bundle up ES2015 code. - Added mix.webpack() installable task. Task will read any `webpack.config.js` file in your project root. - Added mix.stylus() installable task. - If using Webpack and `.vue` files, additionally pull in the `laravel-elixir-vue` extension. - CSS Autoprefixing defaults to > 1% of browsers now. - Improved console logging, including input/output paths and summaries for each executed task. - To opt for minimal logging, run gulp --minimal - `gulp watch` now triggers the whole suite immediately. - `gulp tdd` now triggers the relevant suite immediately. - Notifications may now be disabled. ``` elixir.config.notifications = false; ``` - CoffeeScript, Browersync, and Browserify tasks have been extracted to installable plugins, in order to clean up the dependency tree a bit. If you'd like to continue using these, reference them as usual in your Gulpfile. Upon running `gulp`, however, you'll receive a one-time installation command to run. - Added an alias task for `mix.combine()`, called `mix.compress()`. This achieves the same end result, and is only offered for readability purposes. Should you need to minify a single CSS or JS file, consider using this task. - When running `gulp --production`, Elixir will automatically set `NODE_ENV` to `production`. This means `export NODE_ENV=production && gulp --production` is now equivalent to `gulp --production`. - The watch task now uses polling (`usePoll`) by default. ## New For Plugin Authors - Added an `Elixir.inProduction` property, which is useful if you need to trigger logic only when the user has run `gulp --production`, such as for minification type work and such. - Added a new `Elixir.isWatching()` method to determine if the user has triggered `gulp watch`. This can be useful for the times when a particular piece of logic should only be executed on watch. - You may [register any number of hooks/event listeners](https://github.com/laravel/elixir/blob/master/src/bootstrap/SetHooks.js) to fire at specific times in the Laravel Elixir build. - If you were requiring any Elixir-specific files/classes in your plugins, you'll want to ensure that your paths match up. Some files have been rearranged. - To hook into the new console summary logging, you may add a call to `task.recordStep('Doing something')` within your main task. ## Fixes - Many task dependencies are now lazy-loaded to improve general performance. - `mix.copy()` now allows for copying to destination directories with dots in their name. - Any Gulp-specific errors will now cause the task to exit with the proper code (`process.exit(1)`). - Minification errors are now caught and logged properly. ## Breaking - The third argument to mix.sass() and mix.less() is now a base directory. - CSSNano was swapped out with CleanCSS to improve performance. If passing in plugin-specific options, refer here https://github.com/jakubpawlowicz/clean-css#how-to-use-clean-css-api for new options. - `mix.rubySass()`, which was deprecated multiple releases ago, has finally been removed all-together. Instead, use `mix.sass()`. - `mix.babel()` has been removed. Instead, consider using something like `mix.rollup()`. - The undocumented option to create an `elixir.json` file in your project root has been removed.