- Breaking: Require node.js 12.13 or higher
- Breaking: Remove
node-browser-modules:- This part of Brunch shimmed well-known node.js built-in modules
and provided them for browsers - such as
bufferandutil - It increased Brunch package size massively and the modules themselves were outdated
- Now, if you need to use "node.js" module, install proper shim from NPM
- NPM packages can be used as before, this change only affects built-ins
- This part of Brunch shimmed well-known node.js built-in modules
and provided them for browsers - such as
- Make config optional; and you could have it in package.json
- Build speed-ups up to 1.5x for some cases.
- Built-in webserver is now using serve-handler from micro(1) webserver. Custom webservers are unaffected.
- Breaking: Require node.js 10.16 or higher
- Breaking: Remove Bower and AMD support
- Breaking: Remove support for CoffeeScript brunch configs, emit a command that would compile coffee file to js
- Breaking: New node.js API - use
brunch.build()from node without hassle - Decrease package size by a huge amount:
- Update Chokidar to 3.0
- Remove or integrate many dependencies
- Update dependencies to latest versions
- Added yarn support.
- CLI improvements:
- Undeprecated
--configfor specifying Brunch config file. Thanks @stelmakh. - Fixed
--debugoption. Thanks @denysdovhan.
- Undeprecated
bower installruns 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_ENVvariable. - 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.pathare now removed. Thanks @herenow. - Fixed warning on
hotoption set in config. - Added
"inline"option toconfig.sourceMaps. - Allow specifying watched globs in
getDependencies. - Allow specifying
teardowninconfig.hooks. - If
templates.joinTois empty,javascripts.joinTowill be used. - Added
bower.enabled: falseoption to ignore bower.
- Trailing slashes from
lintandgetDependenciesnow support new promise-based single-parameter plugin API.includesupports 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 installif 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 ofdestPathsince 2.6) inAssetthat is received inonCompile - Moved
config.plugins.npmtoconfig.npm.compilers
- Changed back to
- Print a warning if a plugin from
devDependenciesfails to load. - NPM:
require.aliaswill 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_FOUNDerrors 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:joinToconcatenates all files that match the pattern into oneentryPointsallow 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_JOBSenvironment variable to be able to specify number of jobs to process your build. - Fixed an issue when Brunch was forking processes even if
-jflag was not passed which caused some extreme CPU and memory issues. - Deprecated
onCompileconfig 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 installbehavior while Brunch is watching:- Make sure Brunch waits for it before proceeding.
- Make it aware of
productionenv 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 installif you try to require a package that is present inpackage.jsonbut was not installed. optionalDependenciesare now correctly ignored when not present.peerDepdenencidesare treated as required ones.- Improperly-cased requires (like
Reactinstead 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 / 4flag withbuild/watchto parallelize CPU-bould tasks in your build. See docs for more details.
- You can use the
- React hot load support:
- Bumped
commonjs-require-definitionto 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.vendoras an anymatch set. - Fixed double inclusion of some files on Windows.
- Fixed an issue when
joinToproduction override did not have any effect. - Fixed JSON file loading.
- You can now simply set
config.modules = falseto 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.jssupport, 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 functionerror. - Fixed handling of custom web-servers for
brunch watch -s. - Improved exposure of
process.env.NODE_ENVwhen 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
jsonfiles. onCompileconfig option now receives modifiedassetsas a second argument.serverconfig option now allows to specify customhostnames- New warning: When
brunch w -s -p 3334is used (instead of-P) - New warning: When
defaultExtensionoption 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,
whitelistproperty is no longer required. - Windows implementation should now work correctly.
brunch newlaunched 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 -dis now able to receive an optionalfiltererargumentbrunch newandbrunch buildhangup 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 newreworked, simplified and receives new syntax:brunch new .to create a new project in current directory from dead-simple skeletonbrunch new pathto create the project inpathbrunch new . --skeleton reactto create the project fromReactskeleton- Now allowing to clone skeletons to dirs with
.gitdirectory.
- General speed & stability improvements.
- Rewritten in JavaScript (ES6 + Promises).
- Switched
-pand-P.-pnow specifies--productionbuild and-Pnow specifies watch server port. modules.autoRequireshould 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
onCompilestring replaces not working. - Fix: Linters now get the correct
lintercontext. - 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
--stdinCLI switch is passed
- Add
modules.autoRequireoption 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/--debugCLI 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.jsonand 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
preCompileplugins (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
builddoes 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/--debugCLI 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
joinTomatch) - Improved handling of
plugins.onandplugins.offwhen used withoverrides - New config options
server.commandfor setting non-node.js custom server- Pass
server.configsettings to custom server - Create
absoluteUrloption for source maps - Support for array of files in
pluginHelpersconfig 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
joinToandorder - New config options to control which plugins are used (can be env-specific)
- Allow
onCompilemethod 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
.rewritefiles.
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.filesin custom environments. - Fixed issues with old compiler plugin versions.
- Adopted
brunch-configas the standard config file name.- Config files named
configstill work, but will be deprecated starting with 1.8.
- Config files named
- Added experimental workers support.
- Fixed custom enviroment bug.
- Quick fix for
--optimized building.
- Added
-e, --envparam tobuildandwatchthat will replace --config in 1.8.envis a dead-simple way of specifying your work environment. You can use--env productionand 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 productionor--production) and--configoptions.
- Fixed windows issues with compilation.
- Auto-watching
bower.jsonfor 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
brunchcommand. - Added
pluginHelpersdirective tojoinToconfigs. It allows to specify to which file you want stuff from plugins to be added (handlebars-runtime.js, for example). .htaccessis 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
overridesproperty 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.listsupport 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.watchedwhich 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.fileListIntervalconfig 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 inlogs. - Removed files are now actually removed from compiled output.
- Removed
config.modules.addSourceURLsdirective. Use source maps instead. - Improved compilation performance.
- Improved error messages when there’s a need in
npm install. - Changed syntax of
brunch newtobrunch new <uri> [dir] - Fixed advanced
conventions.assetsissues (e.g./styles\/img/).
- Fixed
brunch new --skeleton.
- Added
plugin#teardownAPI 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.jsondata.
- Fixed
--configoption of build / watch commands. - Fixed
watchcommand description.
- Don’t throw on missing devdependencies. Closes gh-541.
- Reload config correctly on change. Closes gh-540.
- Fixed watching after
npm install. config.optimizeis taken into account if it was set manually.
- Fixed watching of config files.
- Fixed
brunch new.
- Removed
brunch generateandbrunch 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
configfile itself tobrunch-config - Rename
config.minifysetting toconfig.optimize - Rename
config.paths.{app,test,vendor,assets}toconfig.paths.watched - Rename
config.paths.ignoredtoconfig.conventions.ignored - Rename
buildPathtopaths.public - Remove
defaultExtensionandframeworksettings
- Rename
- Use
--productioninstead of--optimizeflag, 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
includemethod of plugins.
- Improved installation process.
- Tester no longer runs watcher by default.
- Changed
brunch test -f REGEXoption to-g / --grepfor 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 REGEXoption 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.wrappernow 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
brunchin 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.notificationson 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.
.gitdirectories are now discarded when usingbrunch newwith git URL.
brunch newnow allowed to take current working directory (.) or any existing directory as first argument.- Assets are now affected by
conventions.ignoredtoo. - 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.jsonand files that will be generated.
- Create
- Added conventions:
- Conventions are configurable via
config.conventions[name]. Convention can be a RegExp or Function. assetsconvention: all files in directories that named asassets(default value) will be copied to public path directly.vendorAll files in directories that named asvendor(default value) won't be wrapped in modules.testsconvention: all files that end with_test.<extension>(default value) are considered as test files and will be loaded automatically withbrunch test.ignoredconvention: 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.modulescan 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 code1instead of0. - Fixed commonjs
require_definitionin <IE9.
- Fixed bug with too fast compilations.
- Added node.js 0.8 and 0.9 support.
jsdom, required forbrunch testcan now be installed once for all apps vianpm install -g jsdom. You'll need to have its parent dir inNODE_MODULESenv variable.- Fixed
compiled intimer andbrunch generatebugs.
- Fixed
brunch teston new projects.
- Config can now be in any language you use in app (e.g. livescript).
- Added
--reporter(-r) option tobrunch testwhich 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.testdirectory is now watched. Add'javascripts/tests.js': /^test/toconfig.javascripts.joinToinconfig.coffeeto compile them.
- Improved command line API:
- Added
github://user/reposkeleton 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.ignorednow doesn't need to check versus if file isconfig.coffeeorpackage.json, it does it automatically in brunch code.- Fixed
config.paths.ignoredon windows. config.paths.vendoris now an array, but it will be soon deprecated.
- Added support for
- Changed
onCompileplugin 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
vendordirectory are now sorted correctly, beforeappfiles. - 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
--pluraloption tobrunch generate. Plural version of generator name is used in controllers and collections. By default, brunch does pluralizing instead of you. - Added
collectiongenerator tobrunch generate. It is not included inbrunch g scaffold, because it's not needed most of the time. - Added
collectionViewgenerator tobrunch generatefor Chaplin users. It doesn't generate correspondingtemplate.
- Added
- If
package.jsonorconfig.coffeewere 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,stylecontroller(generatescontrollerTesttoo)model(generatesmodelTesttoo)view(generatestemplate,style&viewTesttoo)scaffold(generatescontroller,model,viewand their generators)
- User can now define his own generators in
- Improved config API:
- Added
paths.ignoredparam that redefines paths ignored by brunch. paths.assetscan now be an array of paths.
- Added
- Improved plugin API:
- Added support for
onCompilemethod. 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
vendordirectory are now sorted correctly, beforeappfiles.
- Fixed
buildPath is deprecatedwarning on new configs. - Fixed compiling of invalid files (
.rb,.pngetc).
- Fixed compiling of
package.json,configand 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.stylchanges andmain.styldepends on it,main.stylwill be recompiled too. brunch watchnow also watches config &package.json.- Improved command line API:
- Added optional
--configparam to all commands expectbrunch new. Usage:brunch build --config ios_config. - Brought back
--minifyparam inbrunch buildandbrunch watch. - Deprecated
--outputparam inbrunch buildandbrunch watch. - Param
--templateinbrunch newhas been renamed to--skeleton.--skeletonsupports relative / absolute path and git repo URLs. Also, git metadata is automatically removed in cloned / copied projects.
- Added optional
- Improved config API:
buildPathis now deprecated,paths.publicis 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
routerswithlib/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&vendordirectories. - Node.js API now mirrors command line api.
- Dotfiles from assets dir are prevented to be copied to build dir.
- Removed
Cakefilefrom default template. - Changed recommended framework in
test/specto Mocha.
- Updated dependencies.
- Fixed permissions issue with
app/assetsfolder.
- Simplified config files.
- Default app now uses two separate files to simplify debugging:
app.jsandvendor.js. - Changed default naming of build directory & its subdirs. Now the style matches
expressjs and rails.
builddirectory is nowpublic.scriptshas been renamed tojavascripts.styleshas been renamed tostylesheets.
- Rewritten API for plugins to be framework-agnostic & much more simple:
- All
brunch-extensionsplugins 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/-toption tobrunch new. - Added
--path-poption tobrunch generate. - Added support for custom webservers to
brunch watch --server.
- Added
- Files, whose names start with
_and files inapp/assetsare 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=1to 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.coffeewas renamed toinitialize.coffeefor clarity.src/vendorandsrc/appmoved tovendorandapp.- All scripts from
src/vendorare moved toapp/vendor/scripts. - Added support for CoffeeScript in
vendor/scripts. - Added support for Stylus / LESS in
vendor/styles. - Templates have moved from
app/templatestoapp/views/templates.
- Updated command line API:
brunch buildandbrunch watchnow compile files in current working directory (instead of in./brunch/subdir).- Added
brunch generatecommand. It's basically a shortcut for creating new model / view / router. Example usage:brunch generate view user. - Added
brunch watch --serverflag that would run http server on build directory. It has an optional--portsetting.
- 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.