Rewatch is an alternative build system for the Rescript Compiler which uses Ninja. It strives to deliver consistent and faster builds in monorepo setups with multiple packages, where the default build system fails to pick up changed interfaces across multiple packages.
This project should be considered Alpha Status. Currently used to solve a very specific problem within Walnut. We're open to PR's and other contributions to make this more solid.
- Compile Monorepo's with multiple packages
- Correctly compile to different formats than
.mjs
(taken from bsconfig) - Error Handling - we still panic here-and-there, don't expect a super smooth UX
- Compile Single Package
- Configure executables - potentially interop with some Melange / Bucklescript / ReasonML subset
- Install the package
yarn add @rolandpeelen/rewatch
- Build / Clean / Watch
yarn rewatch build .
yarn rewatch clean .
yarn rewatch watch .
Where .
is the folder where the 'root' bsconfig.json
lives. If you encounter a 'stale build error', either directly, or after a while, a clean
may be needed to clean up some old compiler assets.
Pre-requisites:
- Rust
- NodeJS - For running testscripts only
- Yarn or Npm - Npm probably comes with your node installation
cd testrepo && yarn
(install dependencies for submodule)cargo run
Running tests:
cargo build --release
./tests/suite.sh