ReScript ist eine typsichere Sprache, die zu hochwertigem JavaScript kompiliert wird. Sie entstand aus BuckleScript (Hongbo Zhang, 2016), einem OCaml-Backend, und wurde im Juli 2020 zusammen mit Reason unter dem Namen ReScript neu ausgerichtet. ReScript bietet die Ausdruckskraft von OCaml – Typinferenz, Pattern Matching, unveränderliche Daten – mit einer an JavaScript angelehnten Syntax. Anders als ReasonML, das weiterhin auf der OCaml-Toolchain mit Melange aufbaut, besitzt ReScript einen eigenen Compiler und Build-Prozess.

Werkzeuge

  • rescript – Build-Tool und Compiler-Aufruf (früher bsb)
  • bsc – der eigentliche ReScript-Compiler (Single-File)
  • rewatch – Datei-Watcher für rescript build -w
  • rescript convert – migriert OCaml/Reason-Code nach ReScript

Projekt anlegen und bauen

npm init -y
npm install rescript
npx rescript init myapp        # Projektgerüst mit rescript.json anlegen
cd myapp
npx rescript build             # kompiliert .res/.resi nach JavaScript (lib/js)
npx rescript build -w          # Watch-Modus, baut bei Änderungen neu
npx rescript clean             # Build-Artefakte (lib, .bs) entfernen
npx rescript format -all       # Quellcode formatieren

Konfiguration

Die Projektdatei heißt heute rescript.json (früher bsconfig.json). Wichtige Felder: name, sources, package-specs (z. B. commonjs), jsx für React-ähnliche Syntax.

{
  "name": "myapp",
  "sources": [{ "dir": "src" }],
  "package-specs": [{ "module": "commonjs", "in-source": true }],
  "suffix": ".bs.js"
}

ReScript-Quelldateien tragen die Endung .res (Implementierung) und .resi (Signatur). Verwandt: OCaml-Befehle und PureScript-Befehle.