- component integration
- anysort/anymatch
integration, providing much more flexible ways to define source files in
config such as in
joinTo
andorder
- New config options to control which plugins are used (can be env-specific)
- Allow
onCompile
method to be defined in Brunch config file for triggering custom project-specific functionality after every compile cycle - Default settings updates:
- Ignore directories that start with underscore (to match filename handling)
- Fix heroku issues
- Fixed optimizers not actually optimizing the code.
- Fixed syntax error in source code.
- If you remove some file and create a file with the same name, it will be handled correctly.
- Linter warnings are now handled correctly.
- Fixed optimizers.
- Re-release of 1.7.8 because of npm code publishing bug.
NOTE: Re-published on 16 October 2013 due to npm bug. If installed prior to this date, it will actually run as if it is 1.7.6.
- Switched source maps format to new (
//#
). Old format is still available viaconfig.sourceMaps = 'old'
- Assets dotfile ignore exception to enable copying of
.rewrite
files.
NOTE: Re-published on 16 October 2013 due to npm bug. If installed prior to this date, it will actually run as if it is 1.7.6.
- Fixed absolute paths exposal for plugin includes in source maps.
- Workers are now shut down on brunch re-watch.
- Fixed overriding
config.files
in custom environments. - Fixed issues with old compiler plugin versions.
- Adopted
brunch-config
as the standard config file name.- Config files named
config
still work, but will be deprecated starting with 1.8.
- Config files named
- Added experimental workers support.
- Fixed custom enviroment bug.
- Quick fix for
--optimize
d building.
- Added
-e, --env
param tobuild
andwatch
that will replace --config in 1.8.env
is a dead-simple way of specifying your work environment. You can use--env production
and then specifyconfig.overrides.production
, all properties of which will override default config. You may use more than one --env. - Source maps for languages which don't support source maps (“identity source maps”) now generated from compiled source (js) instead of original source (coffee)
- Deprecated
--optimize
(use--env production
or--production
) and--config
options.
- Fixed windows issues with compilation.
- Auto-watching
bower.json
for changes now. - Concatenate JS files in main property of bower component in valid order
(how they were specified in
bower.json
). - Respect config.order.before in brunch config for bower files.
- Local brunch package now takes precedence over global and
will be auto-loaded on global
brunch
command. - Added
pluginHelpers
directive tojoinTo
configs. It allows to specify to which file you want stuff from plugins to be added (handlebars-runtime.js
, for example). .htaccess
is now properly copied from assets.- Fixed issues on windows with copying many assets.
- Added source maps support! Big thanks to Pierre Lepers and Elan Shanker.
- Added Twitter Bower package manager support.
The support is very different from modern builders.
You don’t need to specify concat order or list all files, brunch will do that
for you automatically.
But, some packages don’t specify which files they include and
on which packages they depend.
You may specify
overrides
property in rootbower.json
, see read-components docs - Added proper AMD support. Just include almond.js with your AMD app and brunch will do require.js optimizer job for you.
- Added ability to use multiple compilator plugins for one file.
- Added
require.list
support to default require definition of app. This allows you to automatically load tests and stuff. See new how-to-run-tests guide - Added
config.paths.watched
which replacesconfig.paths.{app,test,vendor,assets}
. - Added
config.modules.nameCleaner
, which allows you to set filterer function for module names, for example, change all definitions of app/file to file (as done by default). - Added
config.fileListInterval
config prop that allows to set an interval in ms which determines how often brunch file list should be checked for new files (internal property). - Added detailed messages of what was done to
compiled in
logs. - Removed files are now actually removed from compiled output.
- Removed
config.modules.addSourceURLs
directive. Use source maps instead. - Improved compilation performance.
- Improved error messages when there’s a need in
npm install
. - Changed syntax of
brunch new
tobrunch new <uri> [dir]
- Fixed advanced
conventions.assets
issues (e.g./styles\/img/
).
- Fixed
brunch new --skeleton
.
- Added
plugin#teardown
API support. With it you can stop servers in your plugins and stuff. It will be called after each brunch stop. - Added
config.notificationsTitle
. - Fixed double requiring of some plugins.
- Fixed reloading of
package.json
data.
- Fixed
--config
option of build / watch commands. - Fixed
watch
command description.
- Don’t throw on missing devdependencies. Closes gh-541.
- Reload config correctly on change. Closes gh-540.
- Fixed watching after
npm install
. config.optimize
is taken into account if it was set manually.
- 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 return 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 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.