UNPKG

36.6 kBMarkdownView Raw
1To install the latest version, execute `npm install -g brunch`
2
3## Brunch 2.9 (Oct 23, 2016)
4* Added new CLI option `--network`: sets server's hostname to `0.0.0.0`. Thanks @shreeve.
5* Reduced installation size of Brunch by 5Mb.
6* Fixed Brunch not quitting immediately after compilation finished.
7* Improved performance of loading configs and writing source maps to disk.
8* Improved config handling:
9 * Trailing slashes from `config.path` are now removed. Thanks @herenow.
10 * Fixed warning on `hot` option set in config.
11 * Added `"inline"` option to `config.sourceMaps`.
12 * Allow specifying watched globs in `getDependencies`.
13 * Allow specifying `teardown` in `config.hooks`.
14 * If `templates.joinTo` is empty, `javascripts.joinTo` will be used.
15 * Added `bower.enabled: false` option to ignore [bower](https://github.com/bower/bower).
16* `lint` and `getDependencies` now support new promise-based single-parameter plugin API.
17* `include` supports returning Promise that resolves to an Array. Thanks @jacksonrayhamilton.
18* Various performance improvements and refactorings.
19
20## Brunch 2.8 (May 21, 2016)
21* Added plugin API for asset compilation e.g. jade to html.
22* Watcher improvements:
23 * Brunch will not try to `npm install` if only the config was changed.
24 * NPM: improved handling of added & removed files during `watch`. Adding a new file will now try to re-check files that previously failed due to module resolution errors. Removing a file will now cause the files that depended on it to be re-checked.
25 * Fixed a memory leak issue after watcher reload (due to config change or update in `package.json`).
26* Small API improvements:
27 * Changed back to `destinationPath` (intsead of `destPath` since 2.6) in `Asset` that is received in `onCompile`
28 * Moved `config.plugins.npm` to `config.npm.compilers`
29* Print a warning if a plugin from `devDependencies` fails to load.
30* NPM: `require.alias` will now be inserted only in the bundles which contain the aliased file. Previous behavior was that all output file contained all possible aliases.
31
32## Brunch 2.7 (Apr 21, 2016)
33* Introduced support for Hot Module Replacement API with [hmr-brunch](https://github.com/brunch/hmr-brunch).
34* Added config file validation of format and types.
35* Allow JavaScript files from NPM packages to get processed with plugins (`config.plugins.npm`).
36* Fixed `entryPoint`-related warnings on Windows.
37* Brunch will now try to recover from `MODULE_NOT_FOUND` errors caused by the config, by trying to `npm install`.
38* The slashes in file paths are now normalized early. The plugins will always receive paths with UNIX-style slashes even on Windows (`/`).
39
40## Brunch 2.6 (Apr 2, 2016)
41* Non-JS files can now output JS modules.
42 * You are now able to import stylesheets from Sass, Less, CSS in JS.
43 * For this to work, don't forget to enable proper config option for each plugin.
44* Added experimental support for `entryPoints`, a smarter alternative to `joinTo`:
45 * `joinTo` concatenates all files that match the pattern into one
46 * `entryPoints` allow you to specify first input file. Then Brunch
47 automatically calculates which modules and dependencies will be used
48 in the output. This way, unused files would not get compiled.
49* Add support for `BRUNCH_JOBS` environment variable to be able to specify number of jobs to process your build.
50* Fixed an issue when Brunch was forking processes even if `-j` flag was not passed which caused some extreme CPU and memory issues.
51* Deprecated `onCompile` config option in favor of new `hooks.onCompile`.
52* Fix a type error when checkin if a file was written.
53* Don't categorize node_modules as 'assets' even if they match the regexp
54* Fixed brokenness of some plugins like `static-jade-brunch`.
55* Fixes parent recompilation when a dependency changes.
56* Improved `npm install` behavior while Brunch is watching:
57 * Make sure Brunch waits for it before proceeding.
58 * Make it aware of `production` env flag for Heroku.
59* Small bugfix for dependency parser.
60
61## Brunch 2.5 (Mar 22, 2016)
62* **Improved NPM support:**
63 * Added support for scoped npm packages, like `@cycle/dom`.
64 * Brunch will now try to `npm install` if you try to require a package that is present in `package.json` but was not installed.
65 * `optionalDependencies` are now correctly ignored when not present.
66 * `peerDepdenencides` are treated as required ones.
67 * Improperly-cased requires (like `React` instead of `react`) will now throw compile errors.
68 * Fixed npm mail file resolving which was not working before in some cases (`rx`).
69* **Support for file extensions:**
70 * Brunch will now register CommonJS modules using full names of the files, and create aliases without extensions to allow you to use both styles of requires.
71 * Basically these cases are possible & different now: `require('file.json')` and `require('file.js')`
72* **Parallel builds:** Bringing up to 50% performance improvement with just one simple flag.
73 * You can use the `-j 2 / 4` flag with `build` / `watch` to parallelize CPU-bould tasks in your build. See [docs](http://brunch.io/docs/commands.html) for more details.
74* **React hot load support:**
75 * Bumped `commonjs-require-definition` to allow resetting modules, which can be used for live JS reloading with the updated `auto-reload-brunch`
76* **Improved output** for JavaScript files.
77* Allow to specify again `conventions.vendor` as an anymatch set.
78* Fixed double inclusion of some files on Windows.
79* Fixed an issue when `joinTo` production override did not have any effect.
80* Fixed JSON file loading.
81
82## Brunch 2.4 (Feb 23, 2016)
83* You can now simply set `config.modules = false` to disable module wrapping.
84* Brunch would now correctly include file-based aliases for NPM packages. For example, this means you would be able to load `require('moment/locales/en')` even though the file is not declared in moment's `package.json`.
85* Fixed auto-expanding of GH URLs in skeletons: `brunch new --skeleton paulmillr/brunch-with-chaplin`
86* Removed `component.js` support, which was barely supported since v2.0.
87* Added warning for versions of NPM <3, because Brunch does not work on those.
88* Improved error handling.
89
90## Brunch 2.3 (Feb 17, 2016)
91* Small fix for `xBrowserResolve is not a function` error.
92* Fixed handling of custom web-servers for `brunch watch -s`.
93* Improved exposure of `process.env.NODE_ENV` when used in Brunch apps.
94* NPM: Fixed support for different versions of the same package.
95* Enabled NPM support by default
96* NPM: Added aliases support
97* NPM: Added support for including static files.
98* NPM: Added support for different versions of the same package.
99* NPM: Watcher would detect removed packages from users source code and
100 then do a corresponding recompilation.
101* NPM: Added support for `json` files.
102* `onCompile` config option now receives modified `assets` as a second argument.
103* `server` config option now allows to specify custom `hostname`s
104* New warning: When `brunch w -s -p 3334` is used (instead of `-P`)
105* New warning: When `defaultExtension` option is used.
106 It has been removed in Brunch 1.1, but many configs still have it.
107
108## Brunch 2.2 (Jan 22, 2016)
109* Massively improved NPM integration:
110 1. Brunch would now automatically detect and extract all npm packages.
111 2. Because of this, `whitelist` property is no longer required.
112 3. Windows implementation should now work correctly.
113* `brunch new` launched with old syntax would now throw a descriptive error.
114* Improved progress indicator. It would not allow plugins to write output on top of it.
115* Added support for promises in plugins.
116* Improve compatibility with Brunch 1.x.
117* Built-in node.js modules can now be loaded in your client-side apps.
118
119## Brunch 2.1 (Jan 1, 2016)
120* Brunch would now indicate progress for long builds, like that:
121 `(4s) Compiling => Compiling. => Compiling..`
122* Massively improved debug output (`-d`) readability.
123* Now throwing correct import errors ([gh-1053](https://github.com/brunch/brunch/issues/1053), [gh-1041](https://github.com/brunch/brunch/issues/1041)).
124* NPM integration was hugely reworked. Disabled by default for now.
125 1. With `config.npm.enabled = true`, all non-brunch NPM packages
126 would be loaded automatically.
127 2. To exclude packages, specify the blacklist:
128 `config.npm = {blacklist: ['express']}`
129 3. To include packages manually, specify the whitelist:
130 `config.npm = {whitelist: ['react', 'react-dom', 'pikaday']}`
131* Fixes an issue when NPM packages were included incorrectly on Windows.
132* `brunch build -d` is now able to receive an optional `filterer` argument
133* `brunch new` and `brunch build` hangup fixes.
134* NPM integration fixes
135* Fixes an issue when sass-brunch or similar plugins weren't compiling files correctly.
136
137## Brunch 2.0 (Nov 19, 2015)
138
139Brunch v2 **requires node 4.0 / npm 3.0 or higher**.
140
141* `brunch new` reworked, simplified and receives new syntax:
142 * `brunch new .` to create a new project in current directory from dead-simple skeleton
143 * `brunch new path` to create the project in `path`
144 * `brunch new . --skeleton react` to create the project from `React` skeleton
145 * Now allowing to clone skeletons to dirs with `.git` directory.
146* General speed & stability improvements.
147* Rewritten in JavaScript (ES6 + Promises).
148* Switched `-p` and `-P`. `-p` now specifies `--production` build and `-P` now specifies watch server port.
149* `modules.autoRequire` should now work correctly on Windows.
150* Fixes using production flag (`-p`) with multiple optimizers [(gh-1056)](https://github.com/brunch/brunch/issues/1056).
151* Brunch would now auto-expand the following syntax to a full GitHub user / repo URL:
152 `brunch new --skeleton paulmillr/brunch-with-chaplin`
153* Fix: Post `onCompile` string replaces not working.
154* Fix: Linters now get the correct `linter` context.
155* Compilation log would now use seconds instead of milliseconds for long compilations.
156* Launching Brunch on node v4< would now throw an explicit error.
157
158
159## Brunch 1.8.5 (Aug 5, 2015)
160* Only listen to stdin (and exit when stdin is closed) when the `--stdin` CLI switch is passed
161
162## Brunch 1.8.4 (Jul 31, 2015)
163* Add `modules.autoRequire` option that would automatically append `require('module')` to your javascript outputs.
164
165## Brunch 1.8.3 (May 19, 2015)
166* Fix restarting watcher upon config change
167* Fix issue with npm includes that have no dependencies
168
169## Brunch 1.8.2 (Apr 21, 2015)
170* Fix regression with `-d`/`--debug` CLI switch
171
172## Brunch 1.8.1 (Apr 20, 2015)
173* Enabled NPM support by default. Just load any installed npm package in your code
174 via `require('package')`.
175
176## Brunch 1.8.0 (Apr 8, 2015)
177* Added experimental **NPM support** for client-side libraries.
178 Just specify dependencies in `package.json` and load them within your app
179 with `require('package')`. Brunch would do all the hard job for you.
180 Behind config option for now (`config.npm = {enabled: true}`).
181* Ultra-simple custom webservers.
182 Brunch will now consume file `brunch-server.{js,coffee}` if it exists
183 and it would be used to launch a custom webserver that launches with `brunch watch --server`.
184 Also, no more need to write `startServer` — just export the function with `module.exports`
185* Added `preCompile` plugins ([gh-873](https://github.com/brunch/brunch/issues/873)).
186* Compilers can now return dependencies:
187 `{data: 'file-data', dependencies: ['a.js', 'b.js']}`
188* Fixed env handling for optimizers ([gh-903](https://github.com/brunch/brunch/issues/903))
189* Only listen to stdin if in persistent mode ([gh-920](https://github.com/brunch/brunch/issues/920))
190* Added **fcache** - a simple way to speed-up your plugins like sass or jade.
191 fcache is a simple filesystem wrapper that allows to read files and
192 to update them in cache.
193 Brunch would usually update them on every change, after that your plugin
194 will pull the data from RAM and would be super fast.
195* Massive improvements to file watcher.
196
197## Brunch 1.7.20 (Dec 8, 2014)
198* Bump chokidar to 0.12.0
199
200## Brunch 1.7.19 (Nov 17, 2014)
201* Bump chokidar to 0.11.0
202* Fix issue with undetected changes when using vim on Linux
203* Ensure `build` does not complete prematurely on slow file systems
204
205## Brunch 1.7.18 (Oct 20, 2014)
206* File watching improvements via chokidar 0.10.1
207
208## Brunch 1.7.17 (Sep 26, 2014)
209* Fix warnings about files joined only under default config settings
210* Warning when custom server fails to callback
211* Add `-d`/`--debug` CLI switch to easily enable debug output
212
213## Brunch 1.7.16 (Sep 13, 2014)
214* Suppress warnings about unjoined filed meant for only specific envs
215
216## Brunch 1.7.15 (Sep 10, 2014)
217* Fix race condition that aborted build cycle on some systems
218* Better error/warning messages for source files that do not get concatenated
219 (no `joinTo` match)
220* Improved handling of `plugins.on` and `plugins.off` when used with `overrides`
221* New [config](https://github.com/brunch/brunch/blob/stable/docs/config.md) options
222 * `server.command` for setting non-node.js custom server
223 * Pass `server.config` settings to custom server
224 * Create `absoluteUrl` option for source maps
225 * Support for array of files in `pluginHelpers` config setting
226* IMPORTANT NOTE: If providing a custom node server for `brunch watch`, ensure it
227 invokes the callback when ready, as brunch now waits for that before proceeding
228 with build steps.
229
230## Brunch 1.7.14 (May 21, 2014)
231* [component](https://github.com/component/component) integration
232* [anysort](https://github.com/es128/anysort)/[anymatch](https://github.com/es128/anymatch)
233 integration, providing much more flexible ways to define source files in
234 config such as in `joinTo` and `order`
235* [New config options](https://github.com/brunch/brunch/blob/stable/docs/config.md#plugins)
236 to control which plugins are used (can be env-specific)
237* Allow `onCompile` method to be defined in Brunch config file for triggering
238 custom project-specific functionality after every compile cycle
239* Default settings updates:
240 * Ignore directories that start with underscore (to match filename handling)
241 * Fix heroku issues
242
243## Brunch 1.7.13 (Dec 9, 2013)
244* Fixed optimizers not actually optimizing the code.
245
246## Brunch 1.7.12 (Nov 30, 2013)
247* Fixed syntax error in source code.
248
249## Brunch 1.7.11 (Nov 29, 2013)
250* If you remove some file and create a file with the same name,
251 it will be handled correctly.
252* Linter warnings are now handled correctly.
253
254## Brunch 1.7.10 (Oct 19, 2013)
255* Fixed optimizers.
256
257## Brunch 1.7.9 (Oct 16, 2013)
258* Re-release of 1.7.8 because of npm code publishing bug.
259
260## Brunch 1.7.8 (Oct 10, 2013)
261*NOTE:* Re-published on 16 October 2013 due to npm bug.
262If installed prior to this date, it will actually run as if it is 1.7.6.
263* Switched source maps format to new (`//#`).
264 Old format is still available via `config.sourceMaps = 'old'`
265* Assets dotfile ignore exception to enable copying of `.rewrite` files.
266
267## Brunch 1.7.7 (Sep 28, 2013)
268*NOTE:* Re-published on 16 October 2013 due to npm bug.
269If installed prior to this date, it will actually run as if it is 1.7.6.
270* Fixed absolute paths exposal for plugin includes in source maps.
271* Workers are now shut down on brunch re-watch.
272
273## Brunch 1.7.6 (Sep 20, 2013)
274* Fixed overriding `config.files` in custom environments.
275* Fixed issues with old compiler plugin versions.
276* Adopted `brunch-config` as the standard config file name.
277 * Config files named `config` still work, but will be deprecated starting
278 with 1.8.
279
280## Brunch 1.7.5 (Sep 17, 2013)
281* Added experimental workers support.
282* Fixed custom enviroment bug.
283
284## Brunch 1.7.4 (Aug 29, 2013)
285* Quick fix for `--optimize`d building.
286
287## Brunch 1.7.3 (Aug 28, 2013)
288* Added `-e, --env` param to `build` and `watch`
289 that will replace --config in 1.8.
290 `env` is a dead-simple way of specifying your work environment.
291 You can use `--env production` and then specify
292 `config.overrides.production`, all properties of which will
293 override default config. You may use more than one --env.
294* Source maps for languages which don't support source maps
295 (“identity source maps”) now generated from
296 compiled source (js) instead of original source (coffee)
297* Deprecated `--optimize` (use `--env production` or `--production`)
298 and `--config` options.
299
300## Brunch 1.7.2 (Aug 19, 2013)
301* Fixed windows issues with compilation.
302* Auto-watching `bower.json` for changes now.
303* Concatenate JS files in main property of bower component in valid order
304 (how they were specified in `bower.json`).
305* Respect config.order.before in brunch config for bower files.
306
307## Brunch 1.7.1 (Aug 11, 2013)
308* Local brunch package now takes precedence over global and
309 will be auto-loaded on global `brunch` command.
310* Added `pluginHelpers` directive to `joinTo` configs. It allows to
311 specify to which file you want stuff from plugins to be added
312 (`handlebars-runtime.js`, for example).
313* `.htaccess` is now properly copied from assets.
314* Fixed issues on windows with copying many assets.
315
316## Brunch 1.7.0 (Jul 23, 2013)
317* Added **source maps** support! Big thanks to
318 [Pierre Lepers](https://github.com/plepers) and
319 [Elan Shanker](https://github.com/es128).
320* Added **Twitter Bower** package manager support.
321 The support is very different from modern builders.
322 You don’t need to specify concat order or list all files, brunch will do that
323 for you automatically.
324 **But**, some packages don’t specify which files they include and
325 on which packages they depend.
326 You may specify `overrides` property in root `bower.json`, see
327 [read-components docs](http://github.com/paulmillr/read-components)
328* Added proper **AMD support**. Just include almond.js with your AMD app
329 and brunch will do require.js optimizer job for you.
330* Added ability to use multiple compilator plugins for one file.
331* Added `require.list` support to default require definition of app. This allows
332 you to automatically load tests and stuff. See new [how-to-run-tests guide](https://github.com/brunch/brunch/blob/master/docs/faq.md#what-is-the-recommended-way-of-running-tests)
333* Added `config.paths.watched` which replaces
334 `config.paths.{app,test,vendor,assets}`.
335* Added `config.modules.nameCleaner`, which allows you to set
336 filterer function for module names, for example, change all
337 definitions of app/file to file (as done by default).
338* Added `config.fileListInterval` config prop that allows to set an
339 interval in ms which determines how often brunch file list
340 should be checked for new files (internal property).
341* Added detailed messages of what was done to `compiled in` logs.
342* Removed files are now actually removed from compiled output.
343* Removed `config.modules.addSourceURLs` directive. Use source maps instead.
344* Improved compilation performance.
345* Improved error messages when there’s a need in `npm install`.
346* Changed syntax of `brunch new` to `brunch new <uri> [dir]`
347* Fixed advanced `conventions.assets` issues (e.g. `/styles\/img/`).
348
349## Brunch 1.6.7 (May 8, 2013)
350* Fixed `brunch new --skeleton`.
351
352## Brunch 1.6.6 (May 7, 2013)
353* Added `plugin#teardown` API support. With it you can stop servers in your
354 plugins and stuff. It will be called after each brunch stop.
355* Added `config.notificationsTitle`.
356* Fixed double requiring of some plugins.
357* Fixed reloading of `package.json` data.
358
359## Brunch 1.6.5 (May 6, 2013)
360* Fixed `--config` option of build / watch commands.
361* Fixed `watch` command description.
362
363## Brunch 1.6.4 (May 5, 2013)
364* Don’t throw on missing devdependencies. Closes [gh-541](https://github.com/brunch/brunch/issues/541).
365* Reload config correctly on change. Closes [gh-540](https://github.com/brunch/brunch/issues/540).
366
367## Brunch 1.6.3 (Apr 7, 2013)
368* Fixed watching after `npm install`.
369* `config.optimize` is taken into account if it was set manually.
370
371## Brunch 1.6.2 (Apr 1, 2013)
372* Fixed watching of config files.
373
374## Brunch 1.6.1 (Mar 25, 2013)
375* Fixed `brunch new`.
376
377## Brunch 1.6.0 (Mar 24, 2013)
378* Removed `brunch generate` and `brunch destroy`.
379 [scaffolt](https://github.com/paulmillr/scaffolt) is its simpler successor.
380* Removed `brunch test`.
381 [Mocha-phantomjs](http://metaskills.net/mocha-phantomjs/) is its simpler
382 successor.
383* Adjust config settings, if you have been using those:
384 * Rename `config` file itself to `brunch-config`
385 * Rename `config.minify` setting to `config.optimize`
386 * Rename `config.paths.{app,test,vendor,assets}` to `config.paths.watched`
387 * Rename `config.paths.ignored` to `config.conventions.ignored`
388 * Rename `buildPath` to `paths.public`
389 * Remove `defaultExtension` and `framework` settings
390* Use `--production` instead of `--optimize` flag, which has been deprecated.
391
392## Brunch 1.5.4 (Mar 19, 2013)
393* Fixed `brunch generate`, switched to standalone modules for some features.
394* Added node 0.10 support.
395
396## Brunch 1.5.3 (Feb 2, 2013)
397* When using `brunch generate`, generator will no longer overwrite
398 existing files.
399* Preserved context of `include` method of plugins.
400
401## Brunch 1.5.2 (Jan 13, 2013)
402* Improved installation process.
403
404## Brunch 1.5.1 (Jan 11, 2013)
405* Tester no longer runs watcher by default.
406* Changed `brunch test -f REGEX` option to `-g / --grep` for consistency with
407 Mocha.
408
409## Brunch 1.5.0 (Jan 2, 2013)
410* Added ability to wrap files in sourceURLs which simplifies debugging a lot.
411 Disabled by default in non-production mode, but can be disabled with
412 `config.modules.addSourceURLs = false`.
413* Added `-f REGEX, --filter REGEX` option to `brunch test`.
414* `--minify` (`-m`) command line option was changed to `--optimize` (`-o`).
415 The previous version is deprecated and will be removed in the future.
416 This is made for plugins that will do optimizations of you application
417 that are not minifications.
418* `config.modules.wrapper` now accepts full file path as first argument, instead
419 of sanitized.
420* Debugging mode syntax was changed to standardized
421 `DEBUG=brunch:* brunch <command>`.
422* Fixed bug when process didn’t return code "1" on compilation errors.
423* Brunch will now work only with brunch plugins that have `brunch` in their
424 name.
425* Improved error handling of running brunch in non-brunch app dirs.
426
427## Brunch 1.4.5 (Dec 14, 2012)
428* Updated base brunch with chaplin skeleton to the latest libs.
429
430## Brunch 1.4.4 (Oct 1, 2012)
431* All errors are now deferred to the compilation end.
432 Also, if you have added one error on previous compilation and one error on
433 current, brunch will show both of them until they will be fixed.
434* Fixed terminal-notifier.app integration.
435* Fixed test passing.
436* Fixed `config.notifications` on ubuntu.
437
438## Brunch 1.4.3 (Sep 2, 2012)
439* Added support of binary files to generators.
440* Improved error logging.
441* Updated built-in webserver to express.js 3.0.
442
443## Brunch 1.4.2 (Aug 18, 2012)
444* Fixed incorrect scaffolding on windows.
445* `.git` directories are now discarded when using `brunch new` with git URL.
446
447## Brunch 1.4.1 (Aug 8, 2012)
448* `brunch new` now allowed to take current working directory (`.`) or any
449 existing directory as first argument.
450* Assets are now affected by `conventions.ignored` too.
451* Fixed linting bug.
452
453## Brunch 1.4.0 (Aug 4, 2012)
454* Added new phenomenally simplified scaffolder:
455 1. Create `generators/` directory in your brunch application
456 (directory name is customizable by `config.paths.generators`).
457 2. Create generator directory there with `generator.json` and
458 files that will be generated.
459* Added conventions:
460 * Conventions are configurable via `config.conventions[name]`.
461 Convention can be a RegExp or Function.
462 * `assets` convention: all files in directories that named as `assets`
463 (default value) will be copied to public path directly.
464 * `vendor` All files in directories that named as `vendor`
465 (default value) won't be wrapped in modules.
466 * `tests` convention: all files that end with `_test.<extension>`
467 (default value) are considered as test files and will be loaded
468 automatically with `brunch test`.
469 * `ignored` convention: all files that start with `_` (default value)
470 are considered as partial files and won't be compiled. Useful for
471 Stylus / Sass languages. This replaces functionality of
472 `config.paths.ignored`.
473* Added AMD support by allowing more flexibility with file wrapping:
474 * `config.modules` can be an object of:
475 * `config.modules.wrapper` - string, boolean or function, defines how to
476 wrap files in app directory in modules.
477 * `config.modules.definition` - string, boolean or function, defines
478 what to add on top of every file.
479* Added linting support. Linting is a static analysis of code. Example
480 tools for this are JSHint, CSSLint etc. The lint API is
481 `plugin.lint(data, path, callback)`. One file can use more than one linter.
482* Added config option that disables growl / libnotify notifications.
483 Usage: `config.notifications = false`.
484* Added support for Mac OS X Mountain Lion notification center.
485 You'll need to place
486 [terminal-notifier.app](https://github.com/alloy/terminal-notifier/downloads)
487 to `/Applications/` to get it work.
488* Removed support for:
489 * `config.files[lang].defaultExtension`.
490 Brunch will automatically detect extension from your generator file name.
491 * `config.framework`, `config.generators`. It's not needed because all
492 generators are local to your application and because brunch now has
493 `generators/` directory.
494 * Array type of `paths.vendor` / `paths.assets`. They're replaced by
495 conventions.
496* If any error happened in `brunch build`, it will exit with error code `1`
497 instead of `0`.
498* Fixed commonjs `require_definition` in <IE9.
499
500## Brunch 1.3.4 (Jul 7, 2012)
501* Fixed bug with too fast compilations.
502
503## Brunch 1.3.3 (Jun 29, 2012)
504* Added node.js 0.8 and 0.9 support.
505* `jsdom`, required for `brunch test` can now be installed once for all apps via
506 `npm install -g jsdom`. You'll need to have its parent dir in `NODE_MODULES`
507 env variable.
508* Fixed `compiled in` timer and `brunch generate` bugs.
509
510## Brunch 1.3.2 (Jun 27, 2012)
511* Fixed `brunch test` on new projects.
512
513## Brunch 1.3.1 (Jun 22, 2012)
514* Config can now be in any language you use in app (e.g. livescript).
515* Added `--reporter` (`-r`) option to `brunch test` which allows to choose
516 Mocha reporter.
517* Made require definition much easier for debugging.
518
519## Brunch 1.3.0 (Jun 19, 2012)
520* Brunch with Chaplin is now the default application skeleton, that will be
521 created on `brunch new <app>`. Old one is still available with
522 `brunch new <app> -s github://brunch/simple-coffee-skeleton`.
523 Chaplin is an awesome set of classes on top of Backbone.js that makes making
524 big webapps very simple.
525* Added testing support (thanks to Andreas Gerstmayr):
526 * [Mocha](http://visionmedia.github.com/mocha/) is used as test engine.
527 It's a feature-rich, flexible and fun.
528 * `brunch test` (or `brunch t`) is used to run all tests in CLI env.
529 * `test` directory is now watched. Add `'javascripts/tests.js': /^test/`
530 to `config.javascripts.joinTo` in `config.coffee` to compile them.
531* Improved command line API:
532 * Added `github://user/repo` skeleton address schema support to
533 `brunch new`.
534 * Debug mode now has logger namespaces. Usage:
535 `BRUNCH_DEBUG=<ns> brunch <command>` where `<ns>` is:
536 `watcher`, `writer`, `*`.
537* Improved file watcher:
538 * Vim backup files are now ignored by watcher.
539 * Fixed watching of non-compiled files in `app`.
540* Improved config API:
541 * Added support for `config.server.base`, which determines base URL from
542 which to serve the app. The default value is empty string.
543 * `config.paths.ignored` now doesn't need to check versus if file is
544 `config.coffee` or `package.json`, it does it automatically in brunch
545 code.
546 * Fixed `config.paths.ignored` on windows.
547 * `config.paths.vendor` is now an array, but it will be soon deprecated.
548* Changed `onCompile` plugin API. Now it receives an array of
549 `fs_utils.GeneratedFile`. This makes it very rich and allows to build smarter
550 reloaders. For example, the ones that reload browser tabs only on stylesheet
551 change.
552* Semicolon is now added after every compiled vendor library because of some
553 libs that break with brunch. Hello, Zepto!
554* Styles in `vendor` directory are now sorted correctly, before `app` files.
555* Only generated files that depend on changed in current compilation files are
556 written now. Before, brunch was writing all files each time.
557
558## Brunch 1.2.2 (May 24, 2012)
559* Brunch now outputs compilation time.
560* Assets are copied one-by-one on change, instead of copying the whole assets
561 directory. This improves watcher performance by about 25%+.
562* Disabled caching in built-in webserver.
563* Improved `brunch generate`:
564 * Added `--plural` option to `brunch generate`. Plural version of generator
565 name is used in controllers and collections. By default, brunch does
566 pluralizing instead of you.
567 * Added `collection` generator to `brunch generate`. It is not included in
568 `brunch g scaffold`, because it's not needed most of the time.
569 * Added `collectionView` generator to `brunch generate` for Chaplin users.
570 It doesn't generate corresponding `template`.
571* If `package.json` or `config.coffee` were removed during the watching, brunch
572 process will exit.
573* Maximum time between changes of two files that will be considered as a one
574 compilation changed from 100ms to 65ms.
575
576## Brunch 1.2.1 (May 12, 2012)
577* Fixed persistence of process with `brunch watch` (without server).
578* Fixed watching of files on windows.
579
580## Brunch 1.2.0 (May 12, 2012)
581* Greatly improved `brunch generate`:
582 * User can now define his own generators in `config.generators`.
583 * Default generators are now:
584 * `controllerTest`, `modelTest`, `viewTest`, `template`, `style`
585 * `controller` (generates `controllerTest` too)
586 * `model` (generates `modelTest` too)
587 * `view` (generates `template`, `style` & `viewTest` too)
588 * `scaffold` (generates `controller`, `model`, `view` and their
589 generators)
590* Improved config API:
591 * Added `paths.ignored` param that redefines paths ignored by brunch.
592 * `paths.assets` can now be an array of paths.
593* Improved plugin API:
594 * Added support for `onCompile` method.
595 It allows great & simple live browser reloaders.
596* Added pushState support to the built-in webserver.
597* Files that end with two underscores (e.g. `a.js__`) are now ignored by
598 watcher and compiler because they're created by some IDEs.
599* Files in `vendor` directory are now sorted correctly, before `app` files.
600
601## Brunch 1.1.2 (Apr 20, 2012)
602* Fixed `buildPath is deprecated` warning on new configs.
603* Fixed compiling of invalid files (`.rb`, `.png` etc).
604
605## Brunch 1.1.1 (Apr 19, 2012)
606* Fixed compiling of `package.json`, `config` and watching of assets.
607* Fixed incorrect date in brunch logger.
608* Fixed an error when requiring custom server script.
609
610## Brunch 1.1.0 (Apr 15, 2012)
611* Added windows support.
612* Added node.js 0.7 / 0.8 support.
613* Added support for chain compilation. For example, if `_user.styl` changes and
614 `main.styl` depends on it, `main.styl` will be recompiled too.
615* `brunch watch` now also watches config & `package.json`.
616* Improved command line API:
617 * Added optional `--config` param to all commands expect `brunch new`.
618 Usage: `brunch build --config ios_config`.
619 * Brought back `--minify` param in `brunch build` and `brunch watch`.
620 * Deprecated `--output` param in `brunch build` and `brunch watch`.
621 * Param `--template` in `brunch new` has been renamed to `--skeleton`.
622 `--skeleton` supports relative / absolute path and git repo URLs.
623 Also, git metadata is automatically removed in cloned / copied projects.
624* Improved config API:
625 * `buildPath` is now deprecated, `paths.public` is used instead of it.
626 * Added `paths.app`, `paths.root`, `paths.assets`, `paths.test`,
627 `paths.vendor`.
628 * Scripts that are not in the config[lang].order are now compiled in
629 alphabetical order instead of random.
630 * Made optional presence of almost all config params.
631* Improved module loader:
632 * Real exceptions are now thrown instead of strings when module wasn't
633 found.
634 * Fixed an issue when loader cached same modules more than once.
635 * Fixed an issue when loader loaded non-existing modules.
636* Greatly improved default coffee skeleton architecture:
637 * Moved all collections to `models`.
638 * Replaced `routers` with `lib/router`.
639 * No more global variable for application bootstrapper, it can be loaded
640 with `require 'application'`.
641 * Switched default templates to Handlebars. Handlebars.js is a nice
642 mustache-compatible template engine that supports helpers
643 (`lib/view_helper`).
644* Fixed loading of non-coffeescript configs.
645* Made optional existence of `app` & `vendor` directories.
646* Node.js API now mirrors command line api.
647
648## Brunch 1.0.3 (Apr 3, 2012)
649* Dotfiles from assets dir are prevented to be copied to build dir.
650
651## Brunch 1.0.2 (Mar 28, 2012)
652* Removed `Cakefile` from default template.
653* Changed recommended framework in `test/spec` to Mocha.
654
655## Brunch 1.0.1 (Mar 26, 2012)
656* Updated dependencies.
657* Fixed permissions issue with `app/assets` folder.
658
659## Brunch 1.0.0 (Mar 14, 2012)
660* Simplified config files.
661* Default app now uses two separate files to simplify debugging: `app.js` and
662 `vendor.js`.
663* Changed default naming of build directory & its subdirs. Now the style matches
664 expressjs and rails.
665 * `build` directory is now `public`.
666 * `scripts` has been renamed to `javascripts`.
667 * `styles` has been renamed to `stylesheets`.
668* Rewritten API for plugins to be framework-agnostic & much more simple:
669 * All `brunch-extensions` plugins have been split into separate repos.
670 * Added support for generator templates.
671 * Added support for different extensions in brunch generators.
672 * Added support for including files with plugins.
673* Improved command line API:
674 * Added `--template` / `-t` option to `brunch new`.
675 * Added `--path` `-p` option to `brunch generate`.
676 * Added support for custom webservers to `brunch watch --server`.
677* Files, whose names start with `_` and files in `app/assets` are now ignored by
678 compiler (but not by watcher).
679* Update backbone to 0.9.1, underscore to 1.3.1 and jquery to 1.7.1.
680* Added IcedCoffeeScript plugin.
681* Fixed Jade templates. See [jade-brunch](https://github.com/brunch/jade-brunch)
682 for more info.
683* Added support for javascript config files.
684* Added debugging mode. You can enable it by prepending `BRUNCH_DEBUG=1 ` to
685 brunch command.
686
687## Brunch 0.9.1 (Feb 21, 2012)
688* Updated brunch-extensions to 0.2.2.
689
690## Brunch 0.9.0 (Jan 10, 2012)
691* Added new API for plugins.
692* Added support for Jade, LESS and Roy. All language compilers / plugins are now
693 located in separate repo,
694 [brunch-extensions](https://github.com/brunch/brunch-extensions).
695* Added JS & CSS minifier.
696* CoffeeScript (instead of YAML) is now used for application configs.
697* Improved file watcher speed by 5-fold.
698* Implemented new directory structure:
699 * The build directory is now generated automatically.
700 * All assets (index.html, images etc.) are placed in app/assets/.
701 * `main.coffee` was renamed to `initialize.coffee` for clarity.
702 * `src/vendor` and `src/app` moved to `vendor` and `app`.
703 * All scripts from `src/vendor` are moved to `app/vendor/scripts`.
704 * Added support for CoffeeScript in `vendor/scripts`.
705 * Added support for Stylus / LESS in `vendor/styles`.
706 * Templates have moved from `app/templates` to `app/views/templates`.
707* Updated command line API:
708 * `brunch build` and `brunch watch` now compile files in current working
709 directory (instead of in `./brunch/` subdir).
710 * Added `brunch generate` command. It's basically a shortcut for creating
711 new model / view / router. Example usage: `brunch generate view user`.
712 * Added `brunch watch --server` flag that would run http server on build
713 directory. It has an optional `--port` setting.
714* Added support for node 0.6.
715* Added growl support.
716* Changed reset.styl to normalize.css & helpers.css from html5boilerplate.
717* Improvements for vendor data: support CSS in vendor/styles directory,
718 support CoffeeScript (in addition to js) in vendor/scripts directory.
719* Add firebug support to stylus compiler.
720* Improved time formatting in console logs.