ReasonML
지원하는 확장자: ml
, re
ReasonML은 BuckleScript을 이용하여 OCaml을 Javascript로 컴파일 합니다. 디펜던시를 설치하고 bsconfig.json
을 작성하여 ReasonML을 사용할 수 있습니다.
$ 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
}
<!-- index.html -->
<!DOCTYPE html>
<html>
<body>
<script src="./src/index.re"></script>
</body>
</html>
/* src/index.re */
print_endline("Hello World");
ReasonReact
ReasonReact은 ReasonML에 대한 React 바인딩 입니다. Parcel과 함께 사용할 수 있습니다.
$ 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>;
};
/* src/index.re */
ReactDOMRe.renderToElementWithId(<Greeting name="Parcel" />, "app");
문서의 개선을 도와주세요
빠진점이 있거나 명확하지 않은 경우, 웹 사이트 저장소에 이슈를 제기해 주시거나 페이지를 수정해 주세요..