Welcome to Broccoli.js
So what is Broccoli? ⚭
Why choose Broccoli? ⚭
Blazing fast ⚡️
Broccoli's incremental rebuild system gives you sub-second compile times even when you're working with hundreds of files.
Less (code) is more 📉
Broccoli's ecosystem of high-quality plugins means you only have to write a few lines of code for most common tasks.
Use Broccoli by itself, or as part of a larger system like Grunt, Rails, ember-cli, or even make. Broccoli doesn't care, it just builds what it's told.
Broccoli simply orchestrates file transformations via plugins. Plugins perform the actual work and operate on files, Broccoli coordinates the inputs and output of plugins.
Example pipeline ⚭
/* Brocfile.js */ import SassSourceMaps from 'broccoli-sass-source-maps'; import Sass from 'sass'; import babel from 'broccoli-babel-transpiler'; import merge from 'broccoli-merge-trees'; const compileSass = SassSourceMaps(Sass); const appRoot = 'app'; const styles = compileSass([appRoot], 'styles/app.scss', 'assets/app.css'); const scripts = babel(appRoot); export default () => merge([styles, scripts]);