docs: 删除过时的文档和测试报告文件
删除不再需要的文档、测试报告和计划文件,包括标题层级规范、颜色优化报告、测试框架文档等
This commit is contained in:
@@ -1,31 +1,37 @@
|
||||
# Novalon Website
|
||||
|
||||
这是一个基于 Next.js 16 构建的现代化静态网站项目,采用 React 19 和 TypeScript 技术栈。
|
||||
四川睿新致远科技有限公司官方网站 - 企业数字化转型服务商
|
||||
|
||||
## 项目概述
|
||||
|
||||
本项目是四川睿新致远科技有限公司的企业官网,采用 Next.js 16 + React 19 + TypeScript 技术栈构建,提供现代化的企业展示、产品服务介绍、案例展示、新闻动态和在线咨询等功能。
|
||||
|
||||
### 核心功能
|
||||
|
||||
- **首页展示** - Hero 区域、核心业务、产品服务、成功案例、关于我们、新闻动态
|
||||
- **服务详情** - 软件开发、云服务、数据分析、信息安全等服务详细介绍
|
||||
- **产品展示** - 产品列表和详情页面
|
||||
- **案例展示** - 成功案例列表和详情
|
||||
- **新闻动态** - 公司新闻、产品发布、合作动态、行业资讯
|
||||
- **在线咨询** - 联系表单、公司信息展示
|
||||
- **响应式设计** - 完美适配桌面端、平板和移动设备
|
||||
- **SEO 优化** - 结构化数据、元信息优化
|
||||
|
||||
## 技术栈
|
||||
|
||||
- **框架**: Next.js 16.1.6 (App Router)
|
||||
- **语言**: TypeScript 5
|
||||
- **UI 库**: React 19.2.3 + React DOM 19.2.3
|
||||
- **样式**: Tailwind CSS v4 + CSS Variables
|
||||
- **组件库**: shadcn/ui (基于 Radix UI)
|
||||
- **动画**: Framer Motion 12.29.2
|
||||
- **图标**: Lucide React 0.563.0
|
||||
- **工具库**:
|
||||
- `clsx` - 条件类名合并
|
||||
- `tailwind-merge` - Tailwind 类名智能合并
|
||||
- `class-variance-authority` - CVA 变体管理
|
||||
- `zod` - 数据验证
|
||||
|
||||
## 项目特性
|
||||
|
||||
- ✨ **现代化 UI** - 基于 shadcn/ui 的精美组件设计
|
||||
- 🎨 **主题支持** - CSS Variables 驱动的深色/浅色主题
|
||||
- 📱 **响应式设计** - 完美适配各种屏幕尺寸
|
||||
- 🚀 **静态导出** - 支持静态 HTML 输出
|
||||
- 🔧 **类型安全** - 完整的 TypeScript 支持
|
||||
- 📦 **代码分割** - 自动按路由代码分割
|
||||
- 🎯 **路径别名** - 使用 `@/*` 别名导入
|
||||
| 类别 | 技术 | 版本 |
|
||||
|------|------|------|
|
||||
| 框架 | Next.js | 16.1.6 |
|
||||
| UI 库 | React | 19.2.3 |
|
||||
| 语言 | TypeScript | 5.x |
|
||||
| 样式 | Tailwind CSS | 4.x |
|
||||
| 组件库 | shadcn/ui (Radix UI) | - |
|
||||
| 动画 | Framer Motion | 12.x |
|
||||
| 图标 | Lucide React | 0.563.0 |
|
||||
| 邮件服务 | Resend | 6.9.2 |
|
||||
| 数据验证 | Zod | 4.3.6 |
|
||||
| 图表 | @antv/g2 | 5.4.8 |
|
||||
| 3D 效果 | Three.js | 0.183.1 |
|
||||
|
||||
## 快速开始
|
||||
|
||||
@@ -38,42 +44,35 @@
|
||||
|
||||
```bash
|
||||
npm install
|
||||
# 或
|
||||
yarn install
|
||||
# 或
|
||||
pnpm install
|
||||
# 或
|
||||
bun install
|
||||
```
|
||||
|
||||
### 环境变量配置
|
||||
|
||||
复制环境变量示例文件:
|
||||
|
||||
```bash
|
||||
cp .env.example .env.local
|
||||
```
|
||||
|
||||
配置必要的环境变量:
|
||||
|
||||
```env
|
||||
RESEND_API_KEY=your_resend_api_key
|
||||
COMPANY_EMAIL=contact@novalon.cn
|
||||
```
|
||||
|
||||
### 开发模式
|
||||
|
||||
启动开发服务器:
|
||||
|
||||
```bash
|
||||
npm run dev
|
||||
# 或
|
||||
yarn dev
|
||||
# 或
|
||||
pnpm dev
|
||||
# 或
|
||||
bun dev
|
||||
```
|
||||
|
||||
访问 [http://localhost:3000](http://localhost:3000)
|
||||
访问 http://localhost:3000
|
||||
|
||||
### 构建生产版本
|
||||
|
||||
构建静态导出:
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
# 或
|
||||
yarn build
|
||||
# 或
|
||||
pnpm build
|
||||
# 或
|
||||
bun build
|
||||
```
|
||||
|
||||
输出目录: `dist/`
|
||||
@@ -82,24 +81,6 @@ bun build
|
||||
|
||||
```bash
|
||||
npm start
|
||||
# 或
|
||||
yarn start
|
||||
# 或
|
||||
pnpm start
|
||||
# 或
|
||||
bun start
|
||||
```
|
||||
|
||||
### 代码检查
|
||||
|
||||
```bash
|
||||
npm run lint
|
||||
# 或
|
||||
yarn lint
|
||||
# 或
|
||||
pnpm lint
|
||||
# 或
|
||||
bun lint
|
||||
```
|
||||
|
||||
## 项目结构
|
||||
@@ -107,149 +88,113 @@ bun lint
|
||||
```
|
||||
novalon-website/
|
||||
├── src/
|
||||
│ ├── app/ # Next.js App Router 页面
|
||||
│ │ ├── layout.tsx # 根布局文件
|
||||
│ │ ├── page.tsx # 首页
|
||||
│ │ ├── globals.css # 全局样式
|
||||
│ │ └── [routes]/ # 动态路由
|
||||
│ ├── components/ # React 组件
|
||||
│ │ ├── ui/ # shadcn/ui 基础组件
|
||||
│ │ └── ... # 业务组件
|
||||
│ ├── lib/ # 工具函数和配置
|
||||
│ │ └── utils.ts # cn() 工具函数
|
||||
│ └── assets/ # 静态资源
|
||||
├── public/ # 公共静态资源
|
||||
├── dist/ # 构建输出目录(静态导出)
|
||||
├── next.config.ts # Next.js 配置
|
||||
├── tsconfig.json # TypeScript 配置
|
||||
├── tailwind.config.* # Tailwind CSS 配置
|
||||
├── components.json # shadcn/ui 配置
|
||||
└── package.json
|
||||
│ ├── app/ # Next.js App Router
|
||||
│ │ ├── (marketing)/ # 营销页面路由组
|
||||
│ │ │ ├── page.tsx # 首页
|
||||
│ │ │ ├── about/ # 关于我们
|
||||
│ │ │ ├── cases/ # 成功案例
|
||||
│ │ │ ├── contact/ # 联系我们
|
||||
│ │ │ ├── news/ # 新闻动态
|
||||
│ │ │ ├── products/ # 产品服务
|
||||
│ │ │ ├── services/ # 核心业务
|
||||
│ │ │ └── solutions/ # 解决方案
|
||||
│ │ ├── api/ # API 路由
|
||||
│ │ │ └── contact/ # 联系表单 API
|
||||
│ │ ├── layout.tsx # 根布局
|
||||
│ │ ├── error.tsx # 错误页面
|
||||
│ │ └── not-found.tsx # 404 页面
|
||||
│ ├── components/ # React 组件
|
||||
│ │ ├── ui/ # 基础 UI 组件
|
||||
│ │ ├── layout/ # 布局组件
|
||||
│ │ ├── sections/ # 页面区块组件
|
||||
│ │ ├── effects/ # 视觉效果组件
|
||||
│ │ ├── seo/ # SEO 组件
|
||||
│ │ └── analytics/ # 分析组件
|
||||
│ ├── lib/ # 工具函数
|
||||
│ ├── hooks/ # 自定义 Hooks
|
||||
│ └── contexts/ # React Context
|
||||
├── e2e/ # E2E 测试
|
||||
│ ├── src/
|
||||
│ │ ├── tests/ # 测试用例
|
||||
│ │ ├── pages/ # Page Object
|
||||
│ │ ├── fixtures/ # 测试 Fixtures
|
||||
│ │ └── config/ # 测试配置
|
||||
│ └── playwright.config.ts
|
||||
├── public/ # 静态资源
|
||||
├── docs/ # 项目文档
|
||||
└── dist/ # 构建输出
|
||||
```
|
||||
|
||||
## 路径别名
|
||||
## 页面路由
|
||||
|
||||
项目配置了以下路径别名:
|
||||
| 路由 | 描述 |
|
||||
|------|------|
|
||||
| `/` | 首页 |
|
||||
| `/about` | 关于我们 |
|
||||
| `/services` | 核心业务列表 |
|
||||
| `/services/[id]` | 业务详情 |
|
||||
| `/products` | 产品服务列表 |
|
||||
| `/products/[id]` | 产品详情 |
|
||||
| `/cases` | 成功案例列表 |
|
||||
| `/cases/[id]` | 案例详情 |
|
||||
| `/news` | 新闻动态列表 |
|
||||
| `/news/[slug]` | 新闻详情 |
|
||||
| `/contact` | 联系我们 |
|
||||
| `/privacy` | 隐私政策 |
|
||||
| `/terms` | 服务条款 |
|
||||
|
||||
| 别名 | 映射路径 | 示例 |
|
||||
| -------------- | --------------------- | ---------------------- |
|
||||
| `@/*` | `./src/*` | `@/components/Button` |
|
||||
| `@/components` | `./src/components` | @/components/ui/button |
|
||||
| `@/lib` | `./src/lib` | @/lib/utils |
|
||||
| `@/ui` | `./src/components/ui` | @/ui/button |
|
||||
| `@/hooks` | `./src/hooks` | @/hooks/useToggle |
|
||||
## NPM 脚本
|
||||
|
||||
## 主要依赖
|
||||
| 命令 | 描述 |
|
||||
|------|------|
|
||||
| `npm run dev` | 启动开发服务器 |
|
||||
| `npm run build` | 构建生产版本 |
|
||||
| `npm start` | 启动生产服务器 |
|
||||
| `npm run lint` | 运行 ESLint 检查 |
|
||||
| `npm run test` | 运行 E2E 测试 |
|
||||
| `npm run test:smoke` | 运行冒烟测试 |
|
||||
| `npm run check:contrast` | 检查颜色对比度 |
|
||||
| `npm run check:headings` | 检查标题层级 |
|
||||
|
||||
### 生产依赖
|
||||
## 测试
|
||||
|
||||
| 依赖 | 版本 | 用途 |
|
||||
| ------------------------ | ------- | ----------------- |
|
||||
| next | 16.1.6 | React 全栈框架 |
|
||||
| react | 19.2.3 | UI 库 |
|
||||
| react-dom | 19.2.3 | React DOM 渲染 |
|
||||
| framer-motion | 12.29.2 | 动画库 |
|
||||
| lucide-react | 0.563.0 | 图标库 |
|
||||
| @radix-ui/react-\* | - | 无状态可访问组件 |
|
||||
| tailwind-merge | 3.4.0 | Tailwind 类名合并 |
|
||||
| class-variance-authority | 0.7.1 | 变体类名管理 |
|
||||
| clsx | 2.1.1 | 条件类名合并 |
|
||||
| zod | 4.3.6 | 数据验证 |
|
||||
项目使用 Playwright 进行 E2E 测试,测试框架位于 `e2e/` 目录。
|
||||
|
||||
### 开发依赖
|
||||
### 测试类型
|
||||
|
||||
| 依赖 | 版本 | 用途 |
|
||||
| ------------------ | ------ | ------------------- |
|
||||
| typescript | 5 | 类型系统 |
|
||||
| tailwindcss | 4 | CSS 框架 |
|
||||
| @types/node | 20 | Node.js 类型 |
|
||||
| @types/react | 19 | React 类型 |
|
||||
| @types/react-dom | 19 | React DOM 类型 |
|
||||
| eslint | 9 | 代码检查 |
|
||||
| eslint-config-next | 16.1.6 | Next.js ESLint 配置 |
|
||||
- **冒烟测试** - 基础功能验证
|
||||
- **回归测试** - 功能完整性验证
|
||||
- **性能测试** - Core Web Vitals
|
||||
- **响应式测试** - 多设备适配
|
||||
- **可访问性测试** - WCAG 合规
|
||||
- **安全测试** - XSS、CSRF 防护
|
||||
- **视觉回归测试** - UI 一致性
|
||||
|
||||
## 配置说明
|
||||
### 运行测试
|
||||
|
||||
### Next.js 配置 (`next.config.ts`)
|
||||
|
||||
```typescript
|
||||
import type { NextConfig } from "next";
|
||||
|
||||
const nextConfig: NextConfig = {
|
||||
output: "export", // 静态导出模式
|
||||
distDir: "dist", // 输出目录
|
||||
images: {
|
||||
unoptimized: true, // 静态导出需要禁用图片优化
|
||||
},
|
||||
};
|
||||
|
||||
export default nextConfig;
|
||||
```bash
|
||||
cd e2e
|
||||
npm install
|
||||
npm run test
|
||||
```
|
||||
|
||||
### TypeScript 配置 (`tsconfig.json`)
|
||||
## CI/CD
|
||||
|
||||
- 目标: ES2017
|
||||
- 模块: ESNext (bundler)
|
||||
- 严格模式: 启用
|
||||
- JSX: react-jsx
|
||||
- 路径别名: `@/*` → `./src/*`
|
||||
项目使用 Woodpecker CI 进行持续集成,配置文件为 `.woodpecker.yml`。
|
||||
|
||||
### Tailwind CSS
|
||||
CI 流水线包括:
|
||||
- E2E 测试(全量、冒烟、回归、性能、响应式、视觉)
|
||||
|
||||
使用 Tailwind CSS v4,采用 CSS-first 配置方式,通过 CSS Variables 实现主题定制。
|
||||
## 文档
|
||||
|
||||
### shadcn/ui 配置
|
||||
详细文档位于 `docs/` 目录:
|
||||
|
||||
- 风格: New York
|
||||
- RSC 支持: 启用
|
||||
- CSS 变量: 启用
|
||||
- 前缀: 空
|
||||
- RTL: 禁用
|
||||
- 图标库: Lucide
|
||||
|
||||
## 构建输出
|
||||
|
||||
运行 `npm run build` 后:
|
||||
|
||||
- 静态文件输出到 `dist/` 目录
|
||||
- 包含静态 HTML、CSS、JavaScript 文件
|
||||
- 图片未优化(因为使用了 `unoptimized: true`)
|
||||
|
||||
可以直接部署到任何静态托管服务:
|
||||
|
||||
- Vercel
|
||||
- Netlify
|
||||
- GitHub Pages
|
||||
- AWS S3 + CloudFront
|
||||
- 阿里云 OSS
|
||||
- 腾讯云 COS
|
||||
|
||||
## 命令速查
|
||||
|
||||
| 命令 | 描述 |
|
||||
| --------------- | ------------------------ |
|
||||
| `npm run dev` | 启动开发服务器 |
|
||||
| `npm run build` | 构建生产版本(静态导出) |
|
||||
| `npm run start` | 启动生产服务器 |
|
||||
| `npm run lint` | 运行 ESLint 检查 |
|
||||
|
||||
## 浏览器支持
|
||||
|
||||
- Chrome (最新 2 个版本)
|
||||
- Firefox (最新 2 个版本)
|
||||
- Safari (最新 2 个版本)
|
||||
- Edge (最新 2 个版本)
|
||||
|
||||
## 学习资源
|
||||
|
||||
- [Next.js 文档](https://nextjs.org/docs)
|
||||
- [React 文档](https://react.dev)
|
||||
- [TypeScript 文档](https://www.typescriptlang.org/docs)
|
||||
- [Tailwind CSS 文档](https://tailwindcss.com/docs)
|
||||
- [shcn/ui 文档](https://ui.shadcn.com)
|
||||
- [Framer Motion 文档](https://www.framer.com/motion)
|
||||
- [Lucide 图标](https://lucide.dev)
|
||||
- [架构文档](docs/architecture.md) - 系统架构设计
|
||||
- [组件文档](docs/components.md) - 组件使用指南
|
||||
- [API 文档](docs/api.md) - API 接口说明
|
||||
- [测试文档](docs/testing.md) - 测试策略和指南
|
||||
- [部署文档](docs/deployment.md) - 部署流程说明
|
||||
|
||||
## 许可证
|
||||
|
||||
本项目仅供学习和参考使用。
|
||||
Copyright © 2026 四川睿新致远科技有限公司
|
||||
|
||||
Reference in New Issue
Block a user