🦕

jsr を利用して deno で hono を動かしただけ

2024/08/03に公開

はじめに

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 には、参照したポストに掲載されていたスニペットをそのまま記述した。

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