Skip to content

Netlify

Netlify는 정적 사이트 호스팅과 서버리스 백엔드 서비스를 제공한다. Edge Functions을 통해 웹 페이지를 동적으로 만들 수 있다.

Edge Functions은 Deno와 TypeScript로 작성할 수 있으며, Netlify CLI를 통해 배포가 간편하다. Hono를 사용하면 Netlify Edge Functions용 애플리케이션을 만들 수 있다.

1. 설정

Netlify를 위한 스타터 프로젝트를 사용할 수 있다. "create-hono" 커맨드로 프로젝트를 시작한다. 이 예제에서는 netlify 템플릿을 선택한다.

sh
npm create hono@latest my-app
sh
yarn create hono my-app
sh
pnpm create hono my-app
sh
bun create hono@latest my-app
sh
deno init --npm hono my-app

my-app 디렉터리로 이동한다.

2. Hello World

netlify/edge-functions/index.ts 파일을 다음과 같이 수정한다:

ts
import { Hono } from 'jsr:@hono/hono'
import { handle } from 'jsr:@hono/hono/netlify'

const app = new Hono()

app.get('/', (c) => {
  return c.text('Hello Hono!')
})

export default handle(app)

3. 실행

Netlify CLI를 사용해 개발 서버를 실행한다. 그런 다음 웹 브라우저에서 http://localhost:8888에 접속한다.

sh
netlify dev

4. 배포

netlify deploy 명령어를 사용해 배포할 수 있다.

sh
netlify deploy --prod

Context

Netlify의 Contextc.env를 통해 접근할 수 있다:

ts
import { Hono } from 'jsr:@hono/hono'
import { handle } from 'jsr:@hono/hono/netlify'

// 타입 정의를 가져옴
import type { Context } from 'https://edge.netlify.com/'

export type Env = {
  Bindings: {
    context: Context
  }
}

const app = new Hono<Env>()

app.get('/country', (c) =>
  c.json({
    'You are in': c.env.context.geo.country?.name,
  })
)

export default handle(app)

Released under the MIT License.