Docs / rescript-react / Installation



  • rescript@10.1 or later

  • react@18.0.0 or later

Add following dependency to your ReScript project (in case you don't have any project yet, check out the installation instructions in the manual):

npm install @rescript/react

Then add the following setting to your existing bsconfig.json:

{ "jsx": { "version": 4, "mode": "classic" }, "bs-dependencies": ["@rescript/react"] }

The new jsx transform of ReactJS is available with mode: "automatic".

Note JSX v4 is newly introduced with the idomatic record-based representation of component. If your dependecies are not compatible with v4 yet, then you can use v3 in the same project. Check out the details in Migrate from v3

To test your setup, create a new .res file in your source directory and add the following code:

// src/Test.res @react.component let make = () => { <div> {React.string("Hello World")} </div> }

Now run npx rescript and you should see a successful build.

Exposed Modules

After a successful installation, @rescript/react will make following modules available in your project's global scope:

  • React: Bindings to React

  • ReactDOM: Bindings to the ReactDOM

  • ReactDOMServer: Bindings to the ReactDOMServer

  • ReactEvent: Bindings to React's synthetic events

  • ReactDOMStyle: Bindings to the inline style API

  • RescriptReactRouter: A simple, yet fully featured router with minimal memory allocations

  • RescriptReactErrorBoundary: A component which handles errors thrown in its child components gracefully