Reason-Create-NPM-Package-PartII

建立 Semver 的類別

semver 在 Javascript 可以使用 new 關鍵字來產生物件

1
2
const s = new semver("1.5.0");
s.minor(); // 5

在 Reason 中可以使用 class type 來綁定

1
2
3
4
5
6
7
8
9
10
11
12
13
14

class type semverInstance =
[@bs]
{
pub version: string;
pub major: int;
pub minor: int;
pub patch: int;
pub raw: string;
pub build: array(string);
pub prerelease: array(string)
};

type tSemver = Js.t(semverInstance);

完成了這一步先回想一下如何發布 NPM 的套件

發布 NPM 套件

document

將寫完的 Reason 檔案透過上面的步驟就可以推到 NPM 上面

使用 NPM 上的 bs-express 套件

1
$ npm install bs-express express

bsconfig.json

1
2
3
"bs-dependencies": [
"bs-express"
],

Demo.re

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
open Express;

let app = express();

let onListen = e =>
switch (e) {
| exception (Js.Exn.Error(e)) =>
Js.log(e);
Node.Process.exit(1);
| _ => Js.log @@ "Listening at http://127.0.0.1:3000"
};

App.get(app, ~path="/") @@
Middleware.from((next, req,) => {
Response.sendString("Hello world")
});

let server = App.listen(app, ~port=3000, ~onListen, ());
1
$ node src/Demo.bs.js

Demo Url

你就可以看到 Hello World!

終於串起 Reason 和 NPM 的部分

接下來是怎麼處理 使用 Reason 讓 Javascript 使用呢?

文章目录
  1. 1. 建立 Semver 的類別
    1. 1.1. 發布 NPM 套件
      1. 1.1.1. 使用 NPM 上的 bs-express 套件
|