broccoli on npm

2.3.0 (20 Mar 2019 18:03)

Fast client-side asset builder


CHANGELOG.md

master

2.0.1

  • Fix various issues resulting in out of memory errors during instrumentation node traversal.

2.0.0

  • Update sane to ensure no native dependencies are needed.
  • Cleanup Builder.prototype.build to properly return Promise<void> (removing the outputNodeWrapper).
  • Add documentation for programmatic Builder usage.
  • Update internal dependencies to latest versions.
  • Remove usages of RSVP (in favor of using native promises).
  • Add support for Node 10.
  • Drop support for Node versions older than 6.
    • Drop Node 4 support.
    • Drop Node 0.12 support.
  • Add visualization support via heimdalljs.
  • Ensure that mid-build cancelation avoids extra work.
  • Add --overwrite option to the command line interface which clobbers any existing directory contents with the contents of the new build.
  • Add --cwd option to the command line interface which allows customizing the builders working directory (and where the Brocfile.js is looked up from).
  • Add --output-path option to the command line interface.
  • Add --watch option to build sub-command.
  • Add --no-watch option to serve sub-command.
  • Add --watcher option to allow configuration of the watcher to be used. Currently supported values are polling, watchman, node, events.
  • General code cleanup and modernization.

1.1.4

  • Roll back broccoli-slow-trees dependency

1.1.3

  • Update dependencies

1.1.2

  • Update findup-sync dependency

1.1.1

  • Fix option parsing for --port

1.1.0

  • Add needsCache to pluginInterface. Allows opting out of cache directory creation.

1.0.0

  • Release without change

1.0.0-beta.8

  • Builder throws an error when a watched input directory is missing
  • Rework watcher
  • Pull broccoli-sane-watcher functionality into core
  • Update findup-sync dependency

1.0.0-beta.7

  • Remove wrong postinstall hook. This removes a spurious dependency on multidep.

1.0.0-beta.6

  • Add build event to watcher

1.0.0-beta.5

  • Remove redundant beginBuild/endBuild (formerly start/end) events on builder

1.0.0-beta.4

  • Improve test suite

1.0.0-beta.3

  • Minor cosmetic changes

1.0.0-beta.2

  • Add watcher.watch() method. Watcher no longer automatically starts watching; instead, you must call this method explicitly. It returns a promise that is fulfilled if you later call watcher.quit(), or rejected if watching one of the source directories fails.

    • server will call watcher.watch() for you.
    • In contrast, getMiddleware expects a watcher that is already watching.

1.0.0-beta.1

  • Drop support for plugins that implement only the old .read/.rebuild API

  • Fail build when a source node is a file rather than a directory

  • Fail build when a source node doesn't exist

  • Builder API changes:

    • new Builder has a tmpdir option, which defaults to os.tmpdir() (typically /tmp); pass { tmpdir: './tmp' } to get the old behavior
    • .build() no longer returns a promise to the output path; instead, the output path stored at builder.outputPath and doesn't change between builds
    • start, end, nodeStart, nodeEnd events renamed to beginBuild, endBuild, beginNode, endNode
    • Nodes passed to nodeBegin/nodeEnd arguments are "node wrapper" objects (also accessible at builder.nodeWrappers); timings now reside at nodeWrapper.buildState.selfTime/totalTime and are in milliseconds, not nanoseconds
    • build() no longer takes a willReadStringTree callback argument; instead, source directories are recorded at builder.watchedPaths
  • Watcher API changes:

    • Add watcher.quit() method, which returns a promise until a running build has finished (if any)
    • Rename watcher.current to watcher.currentBuild, and remove watcher.then
    • Use RSVP.EventTarget instead of EventEmitter for events
  • Build error objects have been changed to Builder.BuildError objects, which contain additional information at err.broccoliPayload

0.16.8

  • Add builder hooks

0.16.7

  • Export watcher and middleware as Watcher and getMiddleware

0.16.6

  • Export watcher and middleware

0.16.5

  • On BROCCOLI_WARN_READ_API=y, print deprecation warning for .rebuild as well

0.16.4

  • Return server objects for easier extensibility

0.16.3

  • Do not silently swallow errors in change/error event handlers

0.16.2

  • Add missing dependency

0.16.1

  • Add Node interface to Builder, to enable building visualizations
  • Export Builder.getDescription(tree) helper function
  • Add footer to directory listings, so people know where they come from

0.16.0

  • Remove built-in LiveReload server; tools like Ember CLI inject LiveReload scripts, which is generally preferable because it doesn't need a separate port

0.15.4

  • Send Cache-Control header for directory listings and redirects
  • Honor liveReloadPath middleware option in directory listings as well
  • Add autoIndex middleware option to disable directory listings

0.15.3

  • Correctly display multi-line error messages

0.15.2

  • Add ability to inject live-reload script into error messages

0.15.1

  • Hide API warnings behind $BROCCOLI_WARN_READ_API env flag
  • Add support for new error API
  • Fail fast if build output directory already exists

0.15.0

  • Print deprecation warnings for plugins only providing old .read API

0.14.0

  • Add support for new .rebuild API, in addition to existing (now deprecated) .read API

0.13.6

0.13.5

  • Add missing var

0.13.4

  • More detailed error message when a tree object is invalid
  • Watcher no longer rebuilds forever when a very early build error occurs

0.13.3

  • Fix SIGINT/SIGTERM (Ctrl+C) handling to avoid leaking tmp files

0.13.2

  • Extract slow trees printout into broccoli-slow-trees package
  • Allow the tree cleanup method to be asynchronous (by returning a promise).

0.13.1

0.13.0

  • Dereference symlinks in broccoli build output by copying the files or directories they point to into place
  • Sort entries when browsing directories in middleware

0.12.3

  • Exclude logo and test directories from npm distribution

0.12.2

  • Fix directory handling in server on Windows

0.12.1

  • Show directory listing with broccoli serve when there is no index.html

0.12.0

  • Add willReadStringTree callback argument to Builder::build and retire Builder::treesRead
  • Update Watcher and Builder interaction to prevent double builds.
  • Avoid unhandled rejected promise
  • Fix trailing slash handling in server on Windows

0.11.0

  • Change Watcher's change event to provide the full build results (instead of just the directory).
  • Add slow tree logging to broccoli serve output.
  • Add logo

0.10.0

  • Move process.exit listener out of builder into server
  • Change Builder::build() method to return a { directory, graph } hash instead of only the directory, where graph contains the output directories and timings for each tree
  • Avoid keeping file streams open in server, to fix EBUSY issues on Windows

0.9.0

  • Brocfile.js now exports a tree, not a function (sample diff)

0.8.0

  • Extract bowerTrees into broccoli-bower plugin (sample diff)

0.7.2

  • Update dependencies

0.7.1

  • Do not use hardlinks in bower implementation

0.7.0

  • Remove broccoli.MergedTree; it has been extracted into broccoli-merge-trees (sample diff)

0.6.0

  • Disallow returning arrays from Brocfile.js, in favor of broccoli-merge-trees plugin (sample diff)

0.5.0

  • Remove broccoli.makeTree('foo') in favor of string literals (just 'foo') (sample diff)
  • Remove broccoli.Reader
  • Add --version command line option

0.4.3

  • Correct mis-publish on npm

0.4.2

  • Preserve value/error on Watcher::current promise
  • This version has been unpublished due to a mis-publish

0.4.1

  • Extract broccoli.helpers into broccoli-kitchen-sink-helpers package

0.3.1

  • Report unhandled errors in the watcher
  • Add support for .treeDir property on error objects
  • Improve watcher logic to stop double builds when build errors happen

0.3.0

  • Bind to localhost instead of 0.0.0.0 (whole wide world) by default

0.2.6

  • Overwrite mis-pushed release

0.2.5

  • Refactor watcher logic to use promises
  • Turn the hapi server into a connect middleware

0.2.4

  • Use smaller bower-config package instead of bower to parse bower.json files

0.2.3

  • Add --port, --host, and --live-reload-port options to serve command

0.2.2

  • Update hapi dependency to avoid file handle leaks, causing EMFILE errors

0.2.1

  • In addition to Brocfile.js, accept lowercase brocfile.js
  • Fix error reporting for string exceptions

0.2.0

  • Rename Broccolifile.js to Brocfile.js
  • Change default port from 8000 to 4200

0.1.1

  • Make tree.cleanup non-optional
  • Rename broccoli.read to broccoli.makeTree

0.1.0

  • Bump to indicate beta status
  • Remove unused helpers.walkSync (now in node-walk-sync)

0.0.13

  • Extract Transformer into broccoli-transform package (now "Transform")
  • Extract Filter into broccoli-filter package

0.0.12

  • In plugin (tree) API, replace .afterBuild with .cleanup
  • Move temporary directories out of the way

0.0.11

  • Extract factory.env into broccoli-env package
  • Eliminate factory argument to Broccolifile

0.0.10

  • Change to a .read-based everything-is-a-tree architecture
  • Various performance improvements
  • Various plugin API changes
  • Add MergedTree
  • Broccolifile may now return an array of trees, which will be merged
  • Expose broccoli.bowerTrees(), which will hopefully be redesigned and go away again
  • Remove Component base class
  • Remove CompilerCollection and Compiler base class; use a Transformer
  • Remove Tree::addTransform, Tree::addTrees, and Tree::addBower
  • Builder::build now has a promise interface as well

0.0.9

  • Expect a Tree, not a Builder, returned from Broccolifile.js

0.0.8

  • Fold Reader into Tree
  • Replace PreprocessorPipeline and Preprocessor with Filter; each Filter is added directly on the tree or builder with addTransform

0.0.7

  • Bind to 0.0.0.0 instead of localhost
  • Add factory.env based on $BROCCOLI_ENV
  • Do not fail on invalid Cookie header
  • Use promises instead of callbacks in all external APIs

0.0.6

  • Here be dragons

Version History

Version Date
2.3.0 20 Mar 2019 18:03
2.2.0 14 Mar 2019 15:03
2.1.0 07 Mar 2019 03:03
2.0.1 26 Oct 2018 13:10
2.0.0 28 Sep 2018 03:09
2.0.0-beta.4 30 Jul 2018 16:07
2.0.0-beta.3 11 Jul 2018 17:07
2.0.0-beta.2 11 Jun 2018 20:06
2.0.0-beta.1 22 May 2018 19:05
1.1.4 30 Oct 2017 16:10
1.1.3 19 Jul 2017 11:07
1.1.2 15 May 2017 17:05
1.1.1 14 Feb 2017 15:02
1.1.0 02 Dec 2016 21:12
1.0.0 01 Dec 2016 22:12
1.0.0-beta.8 01 Dec 2016 19:12
1.0.0-beta.7 27 Apr 2016 20:04
1.0.0-beta.6 19 Dec 2015 15:12
0.16.9 17 Nov 2015 21:11
1.0.0-beta.5 23 Oct 2015 14:10
1.0.0-beta.4 19 Oct 2015 22:10
1.0.0-beta.3 19 Oct 2015 21:10
1.0.0-beta.2 17 Oct 2015 19:10
1.0.0-beta.1 17 Oct 2015 15:10
0.16.8 01 Sep 2015 21:09
0.16.7 13 Aug 2015 23:08
0.16.6 13 Aug 2015 23:08
0.16.5 28 Jul 2015 13:07
0.16.4 09 Jul 2015 16:07
0.16.3 21 May 2015 14:05
0.16.2 19 Apr 2015 17:04
0.16.1 19 Apr 2015 17:04
0.16.0 17 Apr 2015 00:04
0.15.4 17 Apr 2015 00:04
0.15.3 27 Mar 2015 17:03
0.15.2 27 Mar 2015 15:03
0.15.1 27 Mar 2015 03:03
0.15.0 06 Mar 2015 00:03
0.14.0 06 Mar 2015 00:03
0.13.6 05 Mar 2015 19:03
0.13.5 05 Mar 2015 18:03
0.13.4 05 Mar 2015 18:03
0.13.3 13 Nov 2014 22:11
0.13.2 14 Oct 2014 13:10
0.13.1 06 Oct 2014 18:10
0.13.0 29 Sep 2014 23:09
0.12.3 12 Jun 2014 00:06
0.12.2 31 May 2014 16:05
0.12.1 29 May 2014 13:05
0.12.0 07 May 2014 15:05
0.11.0 03 May 2014 18:05
0.10.0 03 May 2014 13:05
0.9.0 11 Apr 2014 00:04
0.8.0 11 Apr 2014 00:04
0.7.2 05 Apr 2014 04:04
0.7.1 05 Apr 2014 01:04
0.7.0 05 Apr 2014 01:04
0.6.0 01 Apr 2014 17:04
0.5.0 29 Mar 2014 00:03
0.4.3 27 Mar 2014 13:03
0.4.2 26 Mar 2014 21:03
0.4.1 13 Mar 2014 22:03
0.4.0 13 Mar 2014 22:03
0.3.1 13 Mar 2014 21:03
0.3.0 12 Mar 2014 01:03
0.2.6 12 Mar 2014 01:03
0.2.5 12 Mar 2014 01:03
0.2.4 06 Mar 2014 01:03
0.2.3 04 Mar 2014 18:03
0.2.2 03 Mar 2014 14:03
0.2.1 01 Mar 2014 23:03
0.2.0 19 Feb 2014 22:02
0.1.1 15 Feb 2014 01:02
0.1.0 13 Feb 2014 01:02
0.0.13 10 Feb 2014 23:02
0.0.12 10 Feb 2014 22:02
0.0.11 07 Feb 2014 23:02
0.0.10 07 Feb 2014 22:02
0.0.9 21 Jan 2014 00:01
0.0.8 20 Jan 2014 23:01
0.0.7 18 Jan 2014 15:01
0.0.6 05 Jan 2014 23:01
0.0.5 03 Jan 2014 18:01
0.0.4 11 Dec 2013 19:12
0.0.3 11 Dec 2013 15:12
0.0.2 14 May 2013 02:05