Enable easy debugging of broccoli pipelines with broccoli-debug!
Last updated 2 years ago by rwjblue .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install broccoli-debug 
SYNC missed versions from official npm registry.

broccoli-debug Build Status Build status

Utility for build pipeline authors to allow trivial debugging of the Broccoli pipelines they author.

Heavily inspired by @stefanpenner's broccoli-stew's debug's helper, but improved in a few ways:

  • Supports leaving debug trees in the build with minimal cost when not being used.
  • Supports binary files (e.g. does not write .png's as utf8 text).
  • Adds debug style debug matching.


Pipeline Authors

To allow consumers to debug the internals of various stages in your build pipeline, you create a new instance of BroccoliDebug and return it instead.

Something like this:

var BroccoliDebug = require('broccoli-debug');

let tree = new BroccoliDebug(input, `ember-engines:${}:addon-input`);

Obviously, this would get quite verbose to do many times, so we have created a shortcut to easily create a number of debug trees with a shared prefix:

let debugTree = BroccoliDebug.buildDebugCallback(`ember-engines:${}`);

let tree1 = debugTree(input1, 'addon-input');
// tree1.debugLabel => 'ember-engines:<some-name>:addon-input'

let tree2 = debugTree(input2, 'addon-output');
// tree2.debugLabel => 'ember-engines:<some-name>:addon-output


Folks wanting to inspect the state of the build pipeline at that stage, would do the following:

BROCCOLI_DEBUG=ember-engines:* ember b

Now you can take a look at the state of that input tree by:

ls DEBUG/ember-engines/*


interface BroccoliDebugOptions {
    The label to use for the debug folder. By default, will be placed in `DEBUG/*`.
  label: string

    The base directory to place the input node contents when debugging is enabled.

    Chooses the default in this order:

    * `process.env.BROCCOLI_DEBUG_PATH`
    * `path.join(process.cwd(), 'DEBUG')`
  baseDir: string

    Should the tree be "always on" for debugging? This is akin to `debugger`, its very
    useful while actively working on a build pipeline, but is likely something you would
    remove before publishing.
  force?: boolean

class BroccoliDebug {
    Builds a callback function for easily generating `BroccoliDebug` instances
    with a shared prefix.
  static buildDebugCallback(prefix: string): (node: any, labelOrOptions: string | BroccoliDebugOptions) => BroccoliNode
  constructor(node: BroccoliNode, labelOrOptions: string | BroccoliDebugOptions);
  debugLabel: string;



  • git clone
  • cd broccoli-debug
  • yarn


  • yarn test

Current Tags

  • 0.6.5                                ...           latest (2 years ago)

8 Versions

  • 0.6.5                                ...           2 years ago
  • 0.6.4                                ...           3 years ago
  • 0.6.3                                ...           3 years ago
  • 0.6.2                                ...           3 years ago
  • 0.6.1                                ...           3 years ago
  • 0.6.0                                ...           3 years ago
  • 0.1.1                                ...           6 years ago
  • 0.1.0                                ...           6 years ago
Today 0
This Week 47
This Month 27
Last Day 8
Last Week 69
Last Month 295
Dependencies (6)
Dev Dependencies (5)

Copyright 2014 - 2016 © |