Build your packages only if they changed since the last build.
-
Look for
package.json
modules in the working directory, ignoring anynode_modules
directories by default. Any local.gitignore
is also respected. -
Crawl the package and generate SHA-1 hashes from every watched file. These hashes are stored in the
.bic_cache
file next to eachpackage.json
module. -
If any
.bic_cache
files are outdated, thenbic
will executenpm run build
in the relevant packages.
- Install the package:
yarn add build-if-changed -D
- Edit your
package.json
module to customize the behavior:
// Only watch the "src" directory:
"bic": ["src"],
// Any glob can be included or excluded:
"bic": { "only": [], "skip": [] },
// Disable bic for a package:
"bic": false,
- Use the package:
yarn build-if-changed
# or
yarn bic
- The
skip
config takes precedence over theonly
config. - The
.git
andnode_modules
directories are always skipped. - Any package with
bic
orbuild-if-changed
in its "build" script is skipped. - This tool uses a custom glob syntax (see here).