UNPKG

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