msync
Version:
Easily manage building and syncing multiple node-modules in a flexibly defined workspace.
74 lines (42 loc) • 1.92 kB
Markdown
[](https://travis-ci.org/philcockfield/msync)

A powerful toolkit for managing multiple node-modules in a flexibly defined workspace.
- `build` and watch (typescript)
- `sync` and watch (dependency graph)
- `bump` (versions in dependency graph order)
- `publish` (to NPM)
## Install
npm install -g msync
## Usage
Create a `sync.yaml` file to define the modules within your workspace.
```yaml
modules:
- ./sample/*/package.json
- ./sample/libs/*/package.json
watchPattern: /lib/**/*.js # The files that when changed cause a sync to occur.
```
Run the command line using `msync` within your workspace folder to list, sync or build the modules:
### ls (list)

### sync

### build (typescript)

Use the `--help` (`-h`) flag to see the options for each command, eg:
msync sync --help
# Ignore
You can ignore file `paths` and module `names` by declaring an `ignore` block in the `sync.yaml` definition:
```yaml
ignore:
paths:
- ./sample/**/ignore-folder
names:
- 'module-4'
```
## Other Approaches
Here are some other approaches to the problem that you might prefer:
- [NPM link](https://docs.npmjs.com/cli/link) - Our old friend `npm link`. Good luck with that!
- [Lerna](https://lernajs.io/): A tool for managing JavaScript projects with multiple packages.
## Next Steps
- workspaces
- `bump` - update version of one modules, and patch all dependent modules.