title | metaTitle | description | canonical |
---|---|---|---|
Overview |
Build System Overview |
Documentation about the ReScript build system and its toolchain |
/docs/manual/v11.0.0/build-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
.
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
Each build will create build artifacts from your project's source files.
To build a project (including its dependencies / pinned-dependencies), run:
rescript
Which is an alias for rescript build
.
To keep a build watcher, run:
rescript -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.
If you ever get into a stale build for edge-case reasons, use:
rescript clean
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.:
rescript -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.