This Broccoli plugin funnels a set of files included (or excluded) from a JS dependency graph.
In other words, you specify an ES6 module as an entry point and the plugin will walk its import graph and only copy-forward the files included in the graph. Alternatively, you can copy forward all files except those in the graph.
const DependencyFunnel = require('broccoli-dependency-funnel');
const input = 'src'; // Can be a directory or Broccoli plugin/node
module.exports = new DependencyFunnel(input, {
include: true,
entry: 'app.js',
external: [ 'lodash' ]
});
-
include
/exclude
: you must specify exactly one of these options set totrue
. This determines whether the files included in the dependency graph or the files excluded from the dependency graph will be funneled forward. -
entry
: you must specify an entry point to the dependency graph you wish to funnel. This should be a string path relative the input directory/node. -
external
: an optional array of imports to be treated as external, meaning they aren't present in the given input directory structure.
git clone <repository-url>
cd broccoli-dependency-funnel
npm install
npm run test
ornpm run test:debug