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