Build System Overview
ReScript comes with a build system, rescript
, that's fast, lean and used as the authoritative build system of the community.
Every ReScript project needs a build description file, rescript.json
.
Options
See rescript help
:
❯ rescript help Usage: rescript <options> <subcommand> `rescript` is equivalent to `rescript build` Options: -v, -version display version number -h, -help display help Subcommands: build clean format convert dump help Run `rescript <subcommand> -h` for subcommand help. Examples: rescript build -h rescript format -h
Build Project
Each build will create build artifacts from your project's source files.
To build a project (including its dependencies / pinned-dependencies), run:
SHrescript
Which is an alias for rescript build
.
To keep a build watcher, run:
SHrescript -w
Any new file change will be picked up and the build will re-run.
Note: third-party libraries (in node_modules
, or via pinned-dependencies
) aren't watched, as doing so may exceed the node.js watcher count limit.
Note 2: In case you want to set up a project in a JS-monorepo-esque approach (npm
and yarn
workspaces) where changes in your sub packages should be noticed by the build, you will need to define pinned dependencies in your main project's rescript.json
. More details here.
Clean Project
If you ever get into a stale build for edge-case reasons, use:
SHrescript clean
Compile with stricter errors in CI
Since 11.1
You may want to compile your project with stricter rules for production, than when developing. With the -warn-error
build flag, this can easily be done, for instance in a continuous integration script. E.g.:
SHrescript -warn-error +110
Here, warning number 110, which is triggered when a %todo
has been found, gets promoted to an error. The full list of warning numbers can be found here.