build-dir
Get a place to put your build.
Why?
- Fast and convenient, easy to set up.
- Namespaces builds in a human-friendly manner.
- Encourages cache-safe URLs.
- Uses a solid convention,
build/<branch>/<version>
. - Gracefully handles edge cases for git branches.
Install
npm install build-dir --save
Usage
Get it into your program.
const buildDir = require('build-dir');
Get a path to use when writing the build.
buildDir().then((dirPath) => {
console.log('Build directory:', dirPath);
});
Get the path that was used for the most recent build.
buildDir.latest().then((dirPath) => {
console.log('Build directory:', dirPath);
});
Set up convenient latest-build
and branch-specific latest
links.
buildDir.link().then(() => {
console.log('Linking complete.')
});
Let us manage the lifecycle steps for you.
buildDir.prepare().then((dir) => {
console.log('Temp dir:', dir.path);
return dir.finalize();
});
API
buildDir(option)
option
Type: object
Build data.
cwd
Type: string
Default: process.cwd()
The parent directory of the build root.
branch
Type: string
Use the given branch name, instead of asking git.
version
Type: string
Use the given version, instead of asking build-version.
buildDir.latest(option)
Same as buildDir()
, except the branch
defaults to the most recently built branch and version
defaults to the most recently built version of the branch
.
buildDir.link(option)
Takes cwd
, branch
, and version
on the option object.
Within the cwd
, writes a symlink at latest-build
pointing to build/<branch>/latest
and from there to version
.
buildDir.prepare(option)
Returns a promise for an object with these fields:
path
is a newly created temporary directory for you to write the build to.finalize()
moves path
to its final location and runs buildDir.link()
on it.
Related
Contributing
See our contributing guidelines for more details.
- Fork it.
- Make a feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request.
License
MPL-2.0 © Seth Holladay
Go make something, dang it.