有一定的 Python 编程经验,想通过实例快速学习 TypeScript,想编写一个博客网站,我的技术框架是这样的: 运行时:Bun 后端框架:Elysia 数据库:Turso ORM:Drizzle ORM 前端:HTMX + UnoCSS 模板引擎:eta 认证:JWT 测试:Bun test

请生成完整的计划,以及所有的 TypeScript 代码,可以按几个大的部分分别生成,虽太累了

非常好的选择 !你的技术栈非常现代化和高效。我会为你制定一个计划,并分几个部分生成 TypeScript 代码。让我们开始吧:

计划概览:

  1. 项目设置
  2. 数据库模型和迁移
  3. 后端 API 开发
  4. 前端页面和组件
  5. 认证和授权
  6. 测试

第一部分:项目设置

  1. 创建项目目录并初始化:
mkdir blog-project
cd blog-project
bun init
  1. 安装依赖:
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
  1. 创建项目结构:
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
  1. 配置 tsconfig. Json:
{
  "compilerOptions": {
    "target": "ES2021",
    "module": "ES2022",
    "moduleResolution": "node",
    "esModuleInterop": true,
    "strict": true,
    "skipLibCheck": true,
    "outDir": "dist"
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules"]
}
  1. 配置 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;
  1. 配置 uno. Config. Ts:
import { defineConfig } from "unocss";
 
export default defineConfig({
  // 自定义配置
});

这是项目设置的第一部分。接下来,我们将继续进行数据库模型和迁移的设置。需要我继续吗?