What is broccoli-source?
The broccoli-source npm package provides utilities for working with Broccoli nodes, which are the fundamental building blocks in the Broccoli build tool. It helps in creating and managing source nodes, which represent input files or directories in a Broccoli build pipeline.
What are broccoli-source's main functionalities?
createSourceNode
This feature allows you to create a source node from a given directory. The 'src' directory is used as the input for the build pipeline.
const { createSourceNode } = require('broccoli-source');
const node = createSourceNode('src');
wrapSourceNode
This feature wraps an existing source node, which can be useful for adding additional metadata or transformations to the node.
const { wrapSourceNode } = require('broccoli-source');
const node = wrapSourceNode('src');
Other packages similar to broccoli-source
broccoli-funnel
Broccoli-funnel is a similar package that allows you to filter and include/exclude files from a source node. It provides more granular control over the files that are passed through the build pipeline compared to broccoli-source.
broccoli-merge-trees
Broccoli-merge-trees is another package that allows you to merge multiple source nodes into a single node. This is useful for combining different sets of files or directories into one cohesive output, which is a different but complementary functionality to what broccoli-source offers.
Broccoli Source
Broccoli plugin for creating "source" nodes that refer to physical file system
directories.
Example Usage
In Brocfile.js
:
const { WatchedDir, UnwatchedDir } = require('broccoli-source');
const lib = new WatchedDir('lib');
const jquery = new UnwatchedDir('bower_components/jquery');
Reference
new WatchedDir(directoryPath, options)
Create a Broccoli node referring to a directory on disk. The Broccoli watcher
used by broccoli serve
will watch the directory and all subdirectories, and
trigger a rebuild whenever something changes.
-
directoryPath
: A path to a directory, either absolute, or relative to the
working directory (typically the directory containing Brocfile.js
).
The directory must exist, or Broccoli will abort.
-
options
:
annotation
: A human-readable description for this node.
new UnwatchedDir(directoryPath, options)
Same as WatchedDir
, but the directory will not be watched.
This can be useful for performance reasons. For example, say you want to refer
to a large directory hierarchy of third-party code in your Brocfile.js
. Such
third-party code is rarely edited in practice. Using UnwatchedDir
instead of
WatchedDir
saves the overhead of setting up useless file system watchers.
When in doubt, use WatchedDir
instead.