A module for repeated efficient synchronizing two directories.
// input/a/{a.js,b.js}// output/ const tree = 'input' 'output';tree;// output is now contains copies of everything that is in input fs; // input / output have diverged tree; // difference is calculated and efficient patch to update `output` is created and applied
Under the hood, this library uses walk-sync to traverse files and folders. You may optionally pass in options to selectively include or ignore files and directories. These whitelisted properties (ignore
and globs
) will be passed to walk-sync.
// Assume the following folder structure...// input/// foo/// foo.js// bar.js// bar/// foo-bar.js const tree = 'input' 'output' ignore: '**/b';tree; // We now expect output to contain foo/, but not bar/.// Any changes made to bar/ won't be synced to output, and the contents of bar/ won't be traversed.
// Assume the following folder structure...// input/// foo/// foo.js// bar.js// bar/// foo-bar.js const tree = 'input' 'output' globs: 'foo' 'foo/bar.js';tree; // We now expect output to contain foo/bar.js, but nothing else.// Be careful when using this property! You'll need to make sure that if you're including a file, it's parent// path is also included, or you'll get an error when tree-sync tries to copy the file over.