To install the latest version, execute npm install -g brunch
- Added yarn support.
- CLI improvements:
- Undeprecated
--config
for specifying Brunch config file. Thanks @stelmakh. - Fixed
--debug
option. Thanks @denysdovhan.
- Undeprecated
bower install
runs automatically now.- Improved error messages. Thanks @lydell.
- Fixed double error logging. Thanks @stelmakh.
- Fixed persistent errors in static files compilers.
- Fixed infinite compilation caused by file writes in
preCompile
. - Plugins now can change file path.
- New API for changing file extension:
.targetExtension
. - Brunch now respects
NODE_ENV
variable. - Other code refactorings and fixes.
- Added new CLI option
--network
: sets server's hostname to0.0.0.0
. Thanks @shreeve. - Reduced installation size of Brunch by 5Mb.
- Fixed Brunch not quitting immediately after compilation finished.
- Improved performance of loading configs and writing source maps to disk.
- Improved config handling:
- Trailing slashes from
config.path
are now removed. Thanks @herenow. - Fixed warning on
hot
option set in config. - Added
"inline"
option toconfig.sourceMaps
. - Allow specifying watched globs in
getDependencies
. - Allow specifying
teardown
inconfig.hooks
. - If
templates.joinTo
is empty,javascripts.joinTo
will be used. - Added
bower.enabled: false
option to ignore bower.
- Trailing slashes from
lint
andgetDependencies
now support new promise-based single-parameter plugin API.include
supports returning Promise that resolves to an Array. Thanks @jacksonrayhamilton.- Various performance improvements and refactorings.
- Added plugin API for asset compilation e.g. jade to html.
- Watcher improvements:
- Brunch will not try to
npm install
if only the config was changed. - 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. - Fixed a memory leak issue after watcher reload (due to config change or update in
package.json
).
- Brunch will not try to
- Small API improvements:
- Changed back to
destinationPath
(instead ofdestPath
since 2.6) inAsset
that is received inonCompile
- Moved
config.plugins.npm
toconfig.npm.compilers
- Changed back to
- Print a warning if a plugin from
devDependencies
fails to load. - 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.
- Introduced support for Hot Module Replacement API with hmr-brunch.
- Added config file validation of format and types.
- Allow JavaScript files from NPM packages to get processed with plugins (
config.plugins.npm
). - Fixed
entryPoint
-related warnings on Windows. - Brunch will now try to recover from
MODULE_NOT_FOUND
errors caused by the config, by trying tonpm install
. - The slashes in file paths are now normalized early. The plugins will always receive paths with UNIX-style slashes even on Windows (
/
).
- Non-JS files can now output JS modules.
- You are now able to import stylesheets from Sass, Less, CSS in JS.
- For this to work, don't forget to enable proper config option for each plugin.
- Added experimental support for
entryPoints
, a smarter alternative tojoinTo
:joinTo
concatenates all files that match the pattern into oneentryPoints
allow you to specify first input file. Then Brunch automatically calculates which modules and dependencies will be used in the output. This way, unused files would not get compiled.
- Add support for
BRUNCH_JOBS
environment variable to be able to specify number of jobs to process your build. - Fixed an issue when Brunch was forking processes even if
-j
flag was not passed which caused some extreme CPU and memory issues. - Deprecated
onCompile
config option in favor of newhooks.onCompile
. - Fix a type error when checkin if a file was written.
- Don't categorize node_modules as 'assets' even if they match the regexp
- Fixed brokenness of some plugins like
static-jade-brunch
. - Fixes parent recompilation when a dependency changes.
- Improved
npm install
behavior while Brunch is watching:- Make sure Brunch waits for it before proceeding.
- Make it aware of
production
env flag for Heroku.
- Small bugfix for dependency parser.
- Improved NPM support:
- Added support for scoped npm packages, like
@cycle/dom
. - Brunch will now try to
npm install
if you try to require a package that is present inpackage.json
but was not installed. optionalDependencies
are now correctly ignored when not present.peerDepdenencides
are treated as required ones.- Improperly-cased requires (like
React
instead ofreact
) will now throw compile errors. - Fixed npm mail file resolving which was not working before in some cases (
rx
).
- Added support for scoped npm packages, like
- Support for file extensions:
- 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.
- Basically these cases are possible & different now:
require('file.json')
andrequire('file.js')
- Parallel builds: Bringing up to 50% performance improvement with just one simple flag.
- You can use the
-j 2 / 4
flag withbuild
/watch
to parallelize CPU-bould tasks in your build. See docs for more details.
- You can use the
- React hot load support:
- Bumped
commonjs-require-definition
to allow resetting modules, which can be used for live JS reloading with the updatedauto-reload-brunch
- Bumped
- Improved output for JavaScript files.
- Allow to specify again
conventions.vendor
as an anymatch set. - Fixed double inclusion of some files on Windows.
- Fixed an issue when
joinTo
production override did not have any effect. - Fixed JSON file loading.
- You can now simply set
config.modules = false
to disable module wrapping. - 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'spackage.json
. - Fixed auto-expanding of GH URLs in skeletons:
brunch new --skeleton paulmillr/brunch-with-chaplin
- Removed
component.js
support, which was barely supported since v2.0. - Added warning for versions of NPM <3, because Brunch does not work on those.
- Improved error handling.
- Small fix for
xBrowserResolve is not a function
error. - Fixed handling of custom web-servers for
brunch watch -s
. - Improved exposure of
process.env.NODE_ENV
when used in Brunch apps. - NPM: Fixed support for different versions of the same package.
- Enabled NPM support by default
- NPM: Added aliases support
- NPM: Added support for including static files.
- NPM: Added support for different versions of the same package.
- NPM: Watcher would detect removed packages from users source code and then do a corresponding recompilation.
- NPM: Added support for
json
files. onCompile
config option now receives modifiedassets
as a second argument.server
config option now allows to specify customhostname
s- New warning: When
brunch w -s -p 3334
is used (instead of-P
) - New warning: When
defaultExtension
option is used. It has been removed in Brunch 1.1, but many configs still have it.
- Massively improved NPM integration:
- Brunch would now automatically detect and extract all npm packages.
- Because of this,
whitelist
property is no longer required. - Windows implementation should now work correctly.
brunch new
launched with old syntax would now throw a descriptive error.- Improved progress indicator. It would not allow plugins to write output on top of it.
- Added support for promises in plugins.
- Improve compatibility with Brunch 1.x.
- Built-in node.js modules can now be loaded in your client-side apps.
- Brunch would now indicate progress for long builds, like that:
(4s) Compiling => Compiling. => Compiling..
- Massively improved debug output (
-d
) readability. - Now throwing correct import errors (gh-1053, gh-1041).
- NPM integration was hugely reworked. Disabled by default for now.
- With
config.npm.enabled = true
, all non-brunch NPM packages would be loaded automatically. - To exclude packages, specify the blacklist:
config.npm = {blacklist: ['express']}
- To include packages manually, specify the whitelist:
config.npm = {whitelist: ['react', 'react-dom', 'pikaday']}
- With
- Fixes an issue when NPM packages were included incorrectly on Windows.
brunch build -d
is now able to receive an optionalfilterer
argumentbrunch new
andbrunch build
hangup fixes.- NPM integration fixes
- Fixes an issue when sass-brunch or similar plugins weren't compiling files correctly.
Brunch v2 requires node 4.0 / npm 3.0 or higher.
brunch new
reworked, simplified and receives new syntax:brunch new .
to create a new project in current directory from dead-simple skeletonbrunch new path
to create the project inpath
brunch new . --skeleton react
to create the project fromReact
skeleton- Now allowing to clone skeletons to dirs with
.git
directory.
- General speed & stability improvements.
- Rewritten in JavaScript (ES6 + Promises).
- Switched
-p
and-P
.-p
now specifies--production
build and-P
now specifies watch server port. modules.autoRequire
should now work correctly on Windows.- Fixes using production flag (
-p
) with multiple optimizers (gh-1056). - Brunch would now auto-expand the following syntax to a full GitHub user / repo URL:
brunch new --skeleton paulmillr/brunch-with-chaplin
- Fix: Post
onCompile
string replaces not working. - Fix: Linters now get the correct
linter
context. - Compilation log would now use seconds instead of milliseconds for long compilations.
- Launching Brunch on node v4< would now throw an explicit error.
- Only listen to stdin (and exit when stdin is closed) when the
--stdin
CLI switch is passed
- Add
modules.autoRequire
option that would automatically appendrequire('module')
to your javascript outputs.
- Fix restarting watcher upon config change
- Fix issue with npm includes that have no dependencies
- Fix regression with
-d
/--debug
CLI switch
- Enabled NPM support by default. Just load any installed npm package in your code
via
require('package')
.
- Added experimental NPM support for client-side libraries.
Just specify dependencies in
package.json
and load them within your app withrequire('package')
. Brunch would do all the hard job for you. Behind config option for now (config.npm = {enabled: true}
). - Ultra-simple custom webservers.
Brunch will now consume file
brunch-server.{js,coffee}
if it exists and it would be used to launch a custom webserver that launches withbrunch watch --server
. Also, no more need to writestartServer
— just export the function withmodule.exports
- Added
preCompile
plugins (gh-873). - Compilers can now return dependencies:
{data: 'file-data', dependencies: ['a.js', 'b.js']}
- Fixed env handling for optimizers (gh-903)
- Only listen to stdin if in persistent mode (gh-920)
- Added fcache - a simple way to speed-up your plugins like sass or jade. fcache is a simple filesystem wrapper that allows to read files and to update them in cache. Brunch would usually update them on every change, after that your plugin will pull the data from RAM and would be super fast.
- Massive improvements to file watcher.
- Bump chokidar to 0.12.0
- Bump chokidar to 0.11.0
- Fix issue with undetected changes when using vim on Linux
- Ensure
build
does not complete prematurely on slow file systems
- File watching improvements via chokidar 0.10.1
- Fix warnings about files joined only under default config settings
- Warning when custom server fails to callback
- Add
-d
/--debug
CLI switch to easily enable debug output
- Suppress warnings about unjoined filed meant for only specific envs
- Fix race condition that aborted build cycle on some systems
- Better error/warning messages for source files that do not get concatenated
(no
joinTo
match) - Improved handling of
plugins.on
andplugins.off
when used withoverrides
- New config options
server.command
for setting non-node.js custom server- Pass
server.config
settings to custom server - Create
absoluteUrl
option for source maps - Support for array of files in
pluginHelpers
config setting
- IMPORTANT NOTE: If providing a custom node server for
brunch watch
, ensure it invokes the callback when ready, as brunch now waits for that before proceeding with build steps.
- 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. - Adjust config settings, if you have been using those:
- Rename
config
file itself tobrunch-config
- Rename
config.minify
setting toconfig.optimize
- Rename
config.paths.{app,test,vendor,assets}
toconfig.paths.watched
- Rename
config.paths.ignored
toconfig.conventions.ignored
- Rename
buildPath
topaths.public
- Remove
defaultExtension
andframework
settings
- Rename
- Use
--production
instead of--optimize
flag, which has been deprecated.
- 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.