jsr を利用して deno で hono を動かしただけ
はじめに
jsr について調べようと思い公式サイトにアクセスした。トップページの Latest updates セクションに以下のリンクが掲載されていた。
Announcing Hono on JSR
このポスト自体はよくよく読まずに、とりあえず JSR を Deno で利用するというのがどういったものなのか、Hono を題材に検証をしてみようと思い手を動かしてみた。
環境セットアップ
まず、以下のコマンドを実行した。
deno init
deno add @hono/hono
上のコマンドを実行すると main.ts
main_test.ts
deno.json
が作成された。
コードの実装
実行する main.ts
には、参照したポストに掲載されていたスニペットをそのまま記述した。
import { Hono } from "@hono/hono";
const app = new Hono();
app.get("/", (c) => {
return c.text("Hello Deno!");
});
Deno.serve(app.fetch);
サーバーの起動
main.ts
を実行するためには、以下のコマンドを実行する。
deno run -A main.ts
このコマンドを実行すると Hono サーバーが立ち上がり、同時に deno.lock
というファイルが作成された。
http://localhost:8000
へリクエストを送り "Hello Deno!"
というテキストが返却されるところまで確認した。
感想と考察
とてもサクッと動かすことができた。何らかの検証とか、書き捨てで良いから JavaScript で軽量な HTTP サーバーを立てたいみたいなケースだと、このやり方はかなりありなのかもしれない。
(プロジェクトに msw を組み込まずに、スタンドアロンで適当なサーバー動かしたい、みたいな時?)
月並みな感想だが、Deno はビルトインで TypeScript サポートされているというのもやはり良い。
JSR のことも Deno のことも良くわからないが、VSCode 上で型定義にジャンプできたのが不思議だった。一体どこを参照しているのだろうか。実行時に Deno ランタイムが、グローバルに何かダウンロードしているのだろうか。
Discussion