# base-nuxt **Repository Path**: riskboy/base-nuxt ## Basic Information - **Project Name**: base-nuxt - **Description**: nuxt 基础框架 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-08 - **Last Updated**: 2025-12-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Vitesse Nuxt 基于 Nuxt 4 的现代化全栈模板 ## 技术栈 - Nuxt 4 + Vue 3 - UnoCSS (原子化 CSS) - Pinia (状态管理) - VueUse (组合式工具) - @nuxtjs/i18n (多语言) - @vite-pwa/nuxt (PWA) - @nuxtjs/color-mode (暗色模式) - pnpm (包管理) ## 命令 ```bash pnpm dev # 开发 pnpm build # 构建 pnpm preview # 预览 pnpm lint # 代码检查 ``` ## 目录结构 ``` vitesse-nuxt/ ├── app/ # 前端源码 │ ├── components/ # 组件(自动导入) │ ├── composables/ # 组合函数(自动导入) │ ├── layouts/ # 布局(自动导入) │ ├── pages/ # 页面路由(自动导入) │ ├── config/ # 应用配置 │ ├── constants/ # 常量 │ ├── types/ # 类型定义 │ ├── utils/ # 工具函数 │ └── plugins/ # Nuxt 插件 ├── locales/ # 国际化 │ ├── en.ts # 英文主文件 │ ├── zh-CN.ts # 中文主文件 │ └── modules/ # 按模块拆分 ├── server/ # 服务端 │ └── api/ # API 路由 ├── public/ # 静态资源 ├── nuxt.config.ts # Nuxt 配置 ├── uno.config.ts # UnoCSS 配置 ├── i18n.config.ts # i18n 配置 └── eslint.config.js # ESLint 配置 ``` ## 核心封装 ### HTTP 请求 (`app/composables/request.ts`) 统一的请求封装,支持 SSR/CSR,自动鉴权和错误处理: ```ts // SSR 阻塞 useGet(url, params?, options?) usePost(url, body?, options?) usePut(url, body?, options?) useDelete(url, options?) // SSR 非阻塞 useLazyGet(url, params?, options?) useLazyPost(url, body?, options?) // 客户端直接调用 $get(url, params?, options?) $post(url, body?, options?) $put(url, body?, options?) $delete(url, options?) ``` 返回结构:`{ code: number, data: T, message: string }` options 扩展参数: - `skipAuth`: 跳过鉴权头注入 - `skipErrorHandler`: 跳过错误处理 ### i18n (`app/composables/i18n.ts`) ```ts const { t, locale, switchLocale, currentLocaleName } = useI18nUtils() ``` 支持语言:en (默认), zh-CN ### 暗色模式 ```ts const color = useColorMode() color.preference = 'dark' | 'light' | 'system' ``` ### 图标 使用 UnoCSS Icons,预装图标集:`carbon`、`twemoji` ```vue
``` 查找图标:https://icones.js.org/ ## 自动导入 | 目录 | 自动导入 | 说明 | |------|----------|------| | `app/components/` | ✅ | 组件 | | `app/composables/` | ✅ | 组合函数 | | `app/layouts/` | ✅ | 布局 | | `app/pages/` | ✅ | 页面路由 | | `app/utils/` | ✅ | 工具函数 | | `app/types/` | ❌ | 类型定义 | | `app/constants/` | ❌ | 常量 | | `server/api/` | ✅ | API 路由 | ## 路径别名 - `~/` → `app/` - `@/` → `app/` ```ts import { xxx } from '~/types/xxx' import { API_URL } from '~/constants' ```