HonoをGlitchのNode.js 14で動かす
@hono/node-server
のv0.0.1が公開された頃からGlitchで動かす機会が何回かあったのですが毎回コピペせずに書き換えるのも面倒なのでコピペ用に投稿しておきます。
今回はHono v2.2.1と@hono/node-server
のv0.1.0を動かします。
今回はHono v2.1.4と@hono/node-server
のv0.0.2を動かします。
TargetがES2020、ModuleがCommonJSなのでNode.js 14のrequireでパッケージを呼び出せそうです。
ただ現在@hono/node-server
の依存関係にあるパッケージ@remix-run/web-fetch
, @remix-run/web-file
, remix-run/web-stream
はtsconfig.jsonテンプレそのままだったのでTargetがESNextでした。
GitHub ActionsのテストでNode.js 14使っているみたいなのでまあ多分大丈夫でしょう。
これがGlitchです。
Hello Nodeからスタートします。
Fastifyを使ったテンプレートですが、とりあえずpackage.jsonとserver.jsを書き換えればHonoで動かせるようになるのでまずはpackage.jsonを書き換えます。
{
"name": "glitch-hello-node",
"version": "0.1.0",
"description": "A simple Node app built on hono, instantly up and running. Built to be remixed on Glitch.com.",
"main": "server.js",
"scripts": {
"start": "node server.js"
},
"dependencies": {
"hono": "2.1.4",
"@hono/node-server": "0.0.2"
},
"engines": {
"node": "14.x"
},
"repository": {
"url": "https://glitch.com/edit/#!/glitch-hello-node"
},
"license": "MIT",
"keywords": [
"node",
"glitch",
"hono"
]
}
package.jsonはこんな感じに。
--- package-fastify.json 2022-10-01 02:47:30.092976286 +0000
+++ package-hono.json 2022-10-01 02:47:35.184971767 +0000
@@ -1,17 +1,14 @@
{
"name": "glitch-hello-node",
"version": "0.1.0",
- "description": "A simple Node app built on fastify, instantly up and running. Built to be remixed on Glitch.com.",
+ "description": "A simple Node app built on hono, instantly up and running. Built to be remixed on Glitch.com.",
"main": "server.js",
"scripts": {
"start": "node server.js"
},
"dependencies": {
- "fastify": "^4.4.0",
- "handlebars": "^4.7.7",
- "@fastify/formbody": "^7.0.1",
- "@fastify/static": "^6.5.0",
- "@fastify/view": "^7.1.0"
+ "hono": "2.1.4",
+ "@hono/node-server": "0.0.2"
},
"engines": {
"node": "14.x"
@@ -23,6 +20,6 @@
"keywords": [
"node",
"glitch",
- "express"
+ "hono"
]
}
Diffを出力するとこんな感じ。
const { serve } = require("@hono/node-server");
const { Hono } = require("hono");
const app = new Hono();
app.get("/", (c) => c.text("Hello, World!"));
serve(app);
server.jsはこんな感じになりました。
あとはPreviewかブラウザタブを開き直せば自動的にパッケージがインストールされHonoが動きます。
追記
Hono v2.2.0からHono本体がNode.js 16以上を指定するようになったことを投稿してから知り、タイトルを変更することも難しいのでHonoのバージョンを下げることにしました。
タイトルとは異なりますがGlitchではpackage.jsonの"node": "14.x"
を"node": "16.x"
にすればNode.js 16にできるので最新のHonoをWARNなく動かしたい場合は以下のpackage.jsonをコピペしてください。
{
"name": "glitch-hello-node",
"version": "0.1.0",
"description": "A simple Node app built on hono, instantly up and running. Built to be remixed on Glitch.com.",
"main": "server.js",
"scripts": {
"start": "node server.js"
},
"dependencies": {
"hono": "^2.2.1",
"@hono/node-server": "^0.1.0"
},
"engines": {
"node": "16.x"
},
"repository": {
"url": "https://glitch.com/edit/#!/glitch-hello-node"
},
"license": "MIT",
"keywords": [
"node",
"glitch",
"hono"
]
}
わーん。
Discussion