ReasonML

Supported extensions: ml , re

ReasonML compiles OCaml to JavaScript with the help of BuckleScript. You can use ReasonML by installing dependencies and creating bsconfig.json :

$ yarn add bs-platform --dev

// bsconfig.json // from https://github.com/BuckleScript/bucklescript/blob/master/jscomp/bsb/templates/basic-reason/bsconfig.json { "name" : "whatever" , "sources" : { "dir" : "src" , "subdirs" : true }, "package-specs" : { "module" : "commonjs" , "in-source" : true }, "suffix" : ".bs.js" , "bs-dependencies" : [], "warnings" : { "error" : "+101" }, "namespace" : true , "refmt" : 3 }

< html > < body > < script src = "./src/index.re" > </ script > </ body > </ html >

print_endline ( "Hello World" );

ReasonReact

ReasonReact is React binding for ReasonML. You can use it with Parcel too:

$ yarn add react react-dom reason-react

// bsconfig.json { "name": "whatever", + "reason": { + "react-jsx": 3 + }, "sources": { "dir": "src", "subdirs": true }, "package-specs": { "module": "commonjs", "in-source": true }, "suffix": ".bs.js", "bs-dependencies": [ + "reason-react" ], "warnings": { "error": "+101" }, "namespace": true, "refmt": 3 }

<!-- index.html --> <html> <body> + <div id="app"></div> <script src="./src/index.re"></script> </body> </html>

/* src/ Greeting .re */ [@react.component] let make = (~name) => { < div > { React . string ( "Hello! " ++ name)} </ div >; };

ReactDOMRe .renderToElementWithId (<Greeting name= "Parcel" />, "app" );

Help us improve the docs

If something is missing or not entirely clear, please file an issue on the website repository or edit this page.