deno-frontend

bởi denoland

Sử dụng khi làm việc với framework Fresh, tạo route hoặc handler trong Fresh, xây dựng giao diện web với Preact, hoặc thêm Tailwind CSS trong Deno. Bao gồm Fresh 2.x…

npx skills add https://github.com/denoland/skills --skill deno-frontend

Frontend development with Deno

Two paths. Pick by what the project already uses.

Regular npm frameworks — the usual choice

Deno runs the normal frontend ecosystem: React, Vue, Svelte, Solid, Vite, Astro, Next.js, Nuxt, SvelteKit, Remix, SolidStart. Nothing needs to be ported, and there is no Deno-specific way to write them.

deno create vite my-app     # or astro, next, nuxt, svelte…
cd my-app
deno install
deno task dev

deno create is npm create. deno install reads package.json. deno task <script> runs package.json scripts. That is the whole difference.

Follow the framework's own documentation for everything else — routing, components, data loading, and config are the framework's concern, not Deno's. Don't invent Deno-flavoured variants of their APIs, and don't reach for Fresh patterns in a React or Svelte project.

The only things worth knowing:

  • Some frameworks need "nodeModulesDir": "auto" in deno.json; Next.js does.
  • Permissions apply to the dev server too — framework tasks generally want -A.
  • Deploying: see the deno-deploy skill, which lists per-framework build commands and presets.

Fresh — Deno's own framework

Fresh suits a new Deno-first project that wants server rendering with minimal client JavaScript. It uses island architecture: pages render on the server, and only components in islands/ ship JavaScript.

deno run -Ar jsr:@fresh/init
cd my-project
deno task dev                # http://localhost:5173

A Fresh project is Vite-based: vite.config.ts for the build, main.ts for the server, file-based routes in routes/, islands in islands/, server-only components in components/. Preact supplies the component model, with signals for state.

// islands/Counter.tsx — interactive, ships JS
import { useSignal } from "@preact/signals";

export default function Counter() {
  const count = useSignal(0);
  return <button onClick={() => count.value++}>Count: {count.value}</button>;
}

Three rules carry most of the weight:

  1. Islands ship JavaScript — keep them small, leave everything else in components/.
  2. Island props must be serializable. Functions cannot be passed.
  3. Handlers take a single (ctx) parameter.

Load references/FRESH.md for routes, handlers, define helpers, middleware, islands, signals, and Tailwind.

Use Fresh 2.x, imported from "fresh". For an existing 1.x project, or one pinned to a 2.0.0-alpha.* release, see references/FRESH_MIGRATION.md.

Further reading

  • https://fresh.deno.dev/docs — Fresh documentation
  • references/FRESH.md — Fresh 2.x patterns in depth
  • references/FRESH_MIGRATION.md — Fresh 1.x and alpha migration

Thêm skills từ denoland

fmt
denoland
Định dạng toàn bộ code trong repo. Chạy trước khi mở PR hoặc commit thay đổi.
official
issue-triage
denoland
Phân loại một vấn đề GitHub của Deno — tái hiện lỗi, phân loại, gắn nhãn và bình luận kèm phát hiện. Sử dụng khi được yêu cầu phân loại một vấn đề hoặc khi có số/URL vấn đề…
official
lint-all
denoland
Lint tất cả mã nguồn (Rust + JS/TS). Sử dụng trước khi mở PR khi mã Rust đã được thay đổi.
official
lint-js
denoland
Chỉ lint mã JS/TS. Sử dụng trước khi mở PR khi chỉ có các tệp JavaScript hoặc TypeScript được thay đổi (không có Rust).
official
node-compat
denoland
Chạy kiểm tra tương thích Node.js, chẩn đoán lỗi, và sửa triển khai, bỏ qua, hoặc bỏ qua bài kiểm tra. Sử dụng khi được yêu cầu làm việc với các bài kiểm tra tương thích node.
official
deno
denoland
Sử dụng khi viết, chạy, cấu hình, xem xét hoặc gỡ lỗi mã trong một dự án Deno, hoặc khi tạo mới một dự án. Bao gồm quản lý phụ thuộc với deno…
official
deno-deploy
denoland
Use when deploying Deno apps to production, asking about Deno Deploy, or working with `deno deploy` CLI commands. Covers deployment workflows, environment…
official
deno-expert
denoland
Kiến thức Deno cấp chuyên gia để xem xét mã, gỡ lỗi và thực thi các phương pháp tốt nhất. Sử dụng khi xem xét mã Deno hoặc trả lời các câu hỏi Deno nâng cao.
official