有一定的 Python 编程经验,想通过实例快速学习 TypeScript,想编写一个博客网站,我的技术框架是这样的: 运行时:Bun 后端框架:Elysia 数据库:Turso ORM:Drizzle ORM 前端:HTMX + UnoCSS 模板引擎:eta 认证:JWT 测试:Bun test
请生成完整的计划,以及所有的 TypeScript 代码,可以按几个大的部分分别生成,虽太累了
非常好的选择 !你的技术栈非常现代化和高效。我会为你制定一个计划,并分几个部分生成 TypeScript 代码。让我们开始吧:
计划概览:
- 项目设置
- 数据库模型和迁移
- 后端 API 开发
- 前端页面和组件
- 认证和授权
- 测试
第一部分:项目设置
- 创建项目目录并初始化:
mkdir blog-project
cd blog-project
bun init- 安装依赖:
bun add elysia @elysiajs/html @elysiajs/jwt
bun add drizzle-orm @libsql/client
bun add -d drizzle-kit
bun add htmx.org
bun add @unocss/cli
bun add eta- 创建项目结构:
blog-project/
├── src/
│ ├── db/
│ │ ├── schema.ts
│ │ └── index.ts
│ ├── routes/
│ │ ├── auth.ts
│ │ ├── posts.ts
│ │ └── users.ts
│ ├── views/
│ │ ├── layouts/
│ │ │ └── main.eta
│ │ ├── partials/
│ │ │ ├── header.eta
│ │ │ └── footer.eta
│ │ ├── home.eta
│ │ ├── login.eta
│ │ └── post.eta
│ ├── middleware/
│ │ └── auth.ts
│ ├── utils/
│ │ └── jwt.ts
│ └── index.ts
├── public/
│ └── styles/
│ └── main.css
├── tests/
│ ├── api.test.ts
│ └── auth.test.ts
├── drizzle.config.ts
├── tsconfig.json
├── uno.config.ts
└── package.json
- 配置 tsconfig. Json:
{
"compilerOptions": {
"target": "ES2021",
"module": "ES2022",
"moduleResolution": "node",
"esModuleInterop": true,
"strict": true,
"skipLibCheck": true,
"outDir": "dist"
},
"include": ["src/**/*"],
"exclude": ["node_modules"]
}- 配置 drizzle. Config. Ts:
import type { Config } from "drizzle-kit";
export default {
schema: "./src/db/schema.ts",
out: "./drizzle",
driver: "turso",
dbCredentials: {
url: process.env.DATABASE_URL!,
authToken: process.env.DATABASE_AUTH_TOKEN,
},
} satisfies Config;- 配置 uno. Config. Ts:
import { defineConfig } from "unocss";
export default defineConfig({
// 自定义配置
});这是项目设置的第一部分。接下来,我们将继续进行数据库模型和迁移的设置。需要我继续吗?