- Fixed watching of config files.
- Fixed
brunch new
.
- Removed
brunch generate
andbrunch destroy
. scaffolt is its simpler successor. - Removed
brunch test
. Mocha-phantomjs is its simpler successor.
- Fixed
brunch generate
, switched to standalone modules for some features. - Added node 0.10 support.
- When using
brunch generate
, generator will no longer overwrite existing files. - Preserved context of
include
method of plugins.
- Improved installation process.
- Tester no longer runs watcher by default.
- Changed
brunch test -f REGEX
option to-g / --grep
for consistency with Mocha.
- Added ability to wrap files in sourceURLs which simplifies debugging a lot.
Disabled by default in non-production mode, but can be disabled with
config.modules.addSourceURLs = false
. - Added
-f REGEX, --filter REGEX
option tobrunch test
. --minify
(-m
) command line option was changed to--optimize
(-o
). The previous version is deprecated and will be removed in the future. This is made for plugins that will do optimizations of you application that are not minifications.config.modules.wrapper
now accepts full file path as first argument, instead of sanitized.- Debugging mode syntax was changed to standardized
DEBUG=brunch:* brunch <command>
. - Fixed bug when process didn’t returned code "1" on compilation errors.
- Brunch will now work only with brunch plugins that have
brunch
in their name. - Improved error handling of running brunch in non-brunch app dirs.
- Updated base brunch with chaplin skeleton to the latest libs.
- All errors are now deferred to the compilation end. Also, if you have added one error on previous compilation and one error on current, brunch will show both of them until they will be fixed.
- Fixed terminal-notifier.app integration.
- Fixed test passing.
- Fixed
config.notifications
on ubuntu.
- Added support of binary files to generators.
- Improved error logging.
- Updated built-in webserver to express.js 3.0.
- Fixed incorrect scaffolding on windows.
.git
directories are now discarded when usingbrunch new
with git URL.
brunch new
now allowed to take current working directory (.
) or any existing directory as first argument.- Assets are now affected by
conventions.ignored
too. - Fixed linting bug.
- Added new phenomenally simplified scaffolder:
- Create
generators/
directory in your brunch application (directory name is customizable byconfig.paths.generators
). - Create generator directory there with
generator.json
and files that will be generated.
- Create
- Added conventions:
- Conventions are configurable via
config.conventions[name]
. Convention can be a RegExp or Function. assets
convention: all files in directories that named asassets
(default value) will be copied to public path directly.vendor
All files in directories that named asvendor
(default value) won't be wrapped in modules.tests
convention: all files that end with_test.<extension>
(default value) are considered as test files and will be loaded automatically withbrunch test
.ignored
convention: all files that start with_
(default value) are considered as partial files and won't be compiled. Useful for Stylus / Sass languages. This replaces functionality ofconfig.paths.ignored
.
- Conventions are configurable via
- Added AMD support by allowing more flexibility with file wrapping:
config.modules
can be an object of:config.modules.wrapper
- string, boolean or function, defines how to wrap files in app directory in modules.config.modules.definition
- string, boolean or function, defines what to add on top of every file.
- Added linting support. Linting is a static analysis of code. Example
tools for this are JSHint, CSSLint etc. The lint API is
plugin.lint(data, path, callback)
. One file can use more than one linter. - Added config option that disables growl / libnotify notifications.
Usage:
config.notifications = false
. - Added support for Mac OS X Mountain Lion notification center.
You'll need to place
terminal-notifier.app
to
/Applications/
to get it work. - Removed support for:
config.files[lang].defaultExtension
. Brunch will automatically detect extension from your generator file name.config.framework
,config.generators
. It's not needed because all generators are local to your application and because brunch now hasgenerators/
directory.- Array type of
paths.vendor
/paths.assets
. They're replaced by conventions.
- If any error happened in
brunch build
, it will exit with error code1
instead of0
. - Fixed commonjs
require_definition
in <IE9.
- Fixed bug with too fast compilations.
- Added node.js 0.8 and 0.9 support.
jsdom
, required forbrunch test
can now be installed once for all apps vianpm install -g jsdom
. You'll need to have its parent dir inNODE_MODULES
env variable.- Fixed
compiled in
timer andbrunch generate
bugs.
- Fixed
brunch test
on new projects.
- Config can now be in any language you use in app (e.g. livescript).
- Added
--reporter
(-r
) option tobrunch test
which allows to choose Mocha reporter. - Made require definition much easier for debugging.
- Brunch with Chaplin is now the default application skeleton, that will be
created on
brunch new <app>
. Old one is still available withbrunch new <app> -s github://brunch/simple-coffee-skeleton
. Chaplin is an awesome set of classes on top of Backbone.js that makes making big webapps very simple. - Added testing support (thanks to Andreas Gerstmayr):
- Mocha is used as test engine. It's a feature-rich, flexible and fun.
brunch test
(orbrunch t
) is used to run all tests in CLI env.test
directory is now watched. Add'javascripts/tests.js': /^test/
toconfig.javascripts.joinTo
inconfig.coffee
to compile them.
- Improved command line API:
- Added
github://user/repo
skeleton address schema support tobrunch new
. - Debug mode now has logger namespaces. Usage:
BRUNCH_DEBUG=<ns> brunch <command>
where<ns>
is:watcher
,writer
,*
.
- Added
- Improved file watcher:
- Vim backup files are now ignored by watcher.
- Fixed watching of non-compiled files in
app
.
- Improved config API:
- Added support for
config.server.base
, which determines base URL from which to serve the app. The default value is empty string. config.paths.ignored
now doesn't need to check versus if file isconfig.coffee
orpackage.json
, it does it automatically in brunch code.- Fixed
config.paths.ignored
on windows. config.paths.vendor
is now an array, but it will be soon deprecated.
- Added support for
- Changed
onCompile
plugin API. Now it receives an array offs_utils.GeneratedFile
. This makes it very rich and allows to build smarter reloaders. For example, the ones that reload browser tabs only on stylesheet change. - Semicolon is now added after every compiled vendor library because of some libs that break with brunch. Hello, Zepto!
- Styles in
vendor
directory are now sorted correctly, beforeapp
files. - Only generated files that depend on changed in current compilation files are written now. Before, brunch was writing all files each time.
- Brunch now outputs compilation time.
- Assets are copied one-by-one on change, instead of copying the whole assets directory. This improves watcher performance by about 25%+.
- Disabled caching in built-in webserver.
- Improved
brunch generate
:- Added
--plural
option tobrunch generate
. Plural version of generator name is used in controllers and collections. By default, brunch does pluralizing instead of you. - Added
collection
generator tobrunch generate
. It is not included inbrunch g scaffold
, because it's not needed most of the time. - Added
collectionView
generator tobrunch generate
for Chaplin users. It doesn't generate correspondingtemplate
.
- Added
- If
package.json
orconfig.coffee
were removed during the watching, brunch process will exit. - Maximum time between changes of two files that will be considered as a one compilation changed from 100ms to 65ms.
- Fixed persistence of process with
brunch watch
(without server). - Fixed watching of files on windows.
- Greatly improved
brunch generate
:- User can now define his own generators in
config.generators
. - Default generators are now:
controllerTest
,modelTest
,viewTest
,template
,style
controller
(generatescontrollerTest
too)model
(generatesmodelTest
too)view
(generatestemplate
,style
&viewTest
too)scaffold
(generatescontroller
,model
,view
and their generators)
- User can now define his own generators in
- Improved config API:
- Added
paths.ignored
param that redefines paths ignored by brunch. paths.assets
can now be an array of paths.
- Added
- Improved plugin API:
- Added support for
onCompile
method. It allows to create great & simple live browser reloaders.
- Added support for
- Added pushState support to the built-in webserver.
- Files that end with two underscores (e.g.
a.js__
) are now ignored by watcher and compiler because they're created by some IDEs. - Files in
vendor
directory are now sorted correctly, beforeapp
files.
- Fixed
buildPath is deprecated
warning on new configs. - Fixed compiling of invalid files (
.rb
,.png
etc).
- Fixed compiling of
package.json
,config
and watching of assets. - Fixed incorrect date in brunch logger.
- Fixed an error when requiring custom server script.
- Added windows support.
- Added node.js 0.7 / 0.8 support.
- Added support for chain compilation. For example, if
_user.styl
changes andmain.styl
depends on it,main.styl
will be recompiled too. brunch watch
now also watches config &package.json
.- Improved command line API:
- Added optional
--config
param to all commands expectbrunch new
. Usage:brunch build --config ios_config
. - Brought back
--minify
param inbrunch build
andbrunch watch
. - Deprecated
--output
param inbrunch build
andbrunch watch
. - Param
--template
inbrunch new
has been renamed to--skeleton
.--skeleton
supports relative / absolute path and git repo URLs. Also, git metadata is automatically removed in cloned / copied projects.
- Added optional
- Improved config API:
buildPath
is now deprecated,paths.public
is used instead of it.- Added
paths.app
,paths.root
,paths.assets
,paths.test
,paths.vendor
. - Scripts that are not in the config[lang].order are now compiled in alphabetical order instead of random.
- Made optional presence of almost all config params.
- Improved module loader:
- Real exceptions are now thrown instead of strings when module wasn't found.
- Fixed an issue when loader cached same modules more than once.
- Fixed an issue when loader loaded non-existing modules.
- Greatly improved default coffee skeleton architecture:
- Moved all collections to
models
. - Replaced
routers
withlib/router
. - No more global variable for application bootstrapper, it can be loaded
with
require 'application'
. - Switched default templates to Handlebars. Handlebars.js is a nice
mustache-compatible template engine that supports helpers
(
lib/view_helper
).
- Moved all collections to
- Fixed loading of non-coffeescript configs.
- Made optional existence of
app
&vendor
directories. - Node.js API now mirrors command line api.
- Dotfiles from assets dir are prevented to be copied to build dir.
- Removed
Cakefile
from default template. - Changed recommended framework in
test/spec
to Mocha.
- Updated dependencies.
- Fixed permissions issue with
app/assets
folder.
- Simplified config files.
- Default app now uses two separate files to simplify debugging:
app.js
andvendor.js
. - Changed default naming of build directory & its subdirs. Now the style
matches expressjs and rails.
build
directory is nowpublic
.scripts
has been renamed tojavascripts
.styles
has been renamed tostylesheets
.
- Rewritten API for plugins to be framework-agnostic & much more simple:
- All
brunch-extensions
plugins have been split into separate repos. - Added support for generator templates.
- Added support for different extensions in brunch generators.
- Added support for including files with plugins.
- All
- Improved command line API:
- Added
--template
/-t
option tobrunch new
. - Added
--path
-p
option tobrunch generate
. - Added support for custom webservers to
brunch watch --server
.
- Added
- Files, whose names start with
_
and files inapp/assets
are now ignored by compiler (but not by watcher). - Update backbone to 0.9.1, underscore to 1.3.1 and jquery to 1.7.1.
- Added IcedCoffeeScript plugin.
- Fixed Jade templates. See jade-brunch for more info.
- Added support for javascript config files.
- Added debugging mode. You can enable it by prepending
BRUNCH_DEBUG=1
to brunch command.
- Updated brunch-extensions to 0.2.2.
- Added new API for plugins.
- Added support for Jade, LESS and Roy. All language compilers / plugins are now located in separate repo, brunch-extensions.
- Added JS & CSS minifier.
- CoffeeScript (instead of YAML) is now used for application configs.
- Improved file watcher speed by 5-fold.
- Implemented new directory structure:
- The build directory is now generated automatically.
- All assets (index.html, images etc.) are placed in app/assets/.
main.coffee
was renamed toinitialize.coffee
for clarity.src/vendor
andsrc/app
moved tovendor
andapp
.- All scripts from
src/vendor
are moved toapp/vendor/scripts
. - Added support for CoffeeScript in
vendor/scripts
. - Added support for Stylus / LESS in
vendor/styles
. - Templates have moved from
app/templates
toapp/views/templates
.
- Updated command line API:
brunch build
andbrunch watch
now compile files in current working directory (instead of in./brunch/
subdir).- Added
brunch generate
command. It's basically a shortcut for creating new model / view / router. Example usage:brunch generate view user
. - Added
brunch watch --server
flag that would run http server on build directory. It has an optional--port
setting.
- Added support for node 0.6.
- Added growl support.
- Changed reset.styl to normalize.css & helpers.css from html5boilerplate.
- Improvements for vendor data: support CSS in vendor/styles directory, support CoffeeScript (in addition to js) in vendor/scripts directory.
- Add firebug support to stylus compiler.
- Improved time formatting in console logs.