AI 自动化文档:前端组件、接口、项目文档自动生成
本文是《AI+前端提效》系列的第 8 篇。文档是前端团队"最不愿意写但又不能没有"的东西。写代码 1 小时、写文档 2 小时,代码改了文档忘了同步------这一篇彻底解决"文档地狱"。
一、为什么文档总是"烂尾"?
先盘点一下前端团队的文档痛点:
- 没人爱写:写文档是"为爱发电",没有直接的业务价值反馈;
- 写了就过期:代码迭代快,文档更新永远跟不上;
- 没人看:新人遇到问题宁愿问同事,也不翻文档;
- 格式混乱:每个模块的文档风格都不一样,找不到想要的信息。
AI 的价值:让"写文档"从"手工活"变成"流水线副产品"------代码写完,文档自动跟上。
二、告别手动写文档!AI 自动生成组件说明、参数、用例
2.1 从组件代码自动生成文档
选中组件,让 AI 生成文档:
text
请为以下 Vue 组件生成完整的组件文档(Markdown):
(粘贴组件代码)
要求:
1. 组件功能说明(一句话 + 详细说明)
2. Props 表格:名称、类型、默认值、必填、说明
3. Emits 表格:事件名、载荷类型、触发时机
4. Expose 的方法列表
5. 使用示例代码(含完整可运行代码)
6. 注意事项(性能、边界、兼容性)
AI 输出的文档示例:
markdown
# SearchInput 搜索输入框组件
## 功能说明
带防抖搜索的输入框组件,输入停止后自动触发搜索事件,支持清空与回车立即搜索。
## Props
| 名称 | 类型 | 默认值 | 必填 | 说明 |
|---|---|---|---|---|
| modelValue | string | '' | 是 | 输入框值(v-model) |
| placeholder | string | '请输入搜索关键词' | 否 | 占位提示 |
| debounceTime | number | 500 | 否 | 防抖毫秒数 |
## Emits
| 事件名 | 载荷 | 触发时机 |
|---|---|---|
| update:modelValue | string | 输入变化时 |
| search | string | 防抖结束或回车时 |
## 使用示例
\```vue
<template>
<SearchInput v-model="keyword" @search="handleSearch" />
</template>
<script setup lang="ts">
import SearchInput from '@/components/common/SearchInput.vue'
const keyword = ref('')
function handleSearch(val: string) {
// 发起搜索请求
}
</script>
\```
2.2 自动生成 Storybook / 组件预览页
text
为这个组件生成 Storybook stories 文件(Component Story Format):
- 默认展示
- 带 placeholder
- 不同 debounceTime
- 清空交互示例
输出到 src/components/SearchInput/SearchInput.stories.ts
typescript
import type { Meta, StoryObj } from '@storybook/vue3'
import SearchInput from './SearchInput.vue'
const meta: Meta<typeof SearchInput> = {
title: 'Common/SearchInput',
component: SearchInput,
tags: ['autodocs']
}
export default meta
type Story = StoryObj<typeof SearchInput>
export const Default: Story = {
args: {
placeholder: '请输入关键词',
debounceTime: 500
}
}
export const CustomDebounce: Story = {
args: {
placeholder: '搜索延迟 2 秒触发',
debounceTime: 2000
}
}
三、接口文档自动同步、更新
3.1 从 API 模块生成接口文档
text
请根据以下 axios API 模块生成接口文档:
(粘贴 api/user.ts 代码)
要求:
1. 每个接口:方法、URL、请求参数类型、响应类型
2. 标注哪些接口需要登录(携带 token)
3. 标注接口的调用场景
4. 输出为 Markdown 表格
3.2 自动生成 OpenAPI / Swagger 描述(接口规范版)
如果后端有 Swagger/OpenAPI 文档,前端可以直接让 AI 生成类型定义和请求函数:
text
根据以下 OpenAPI 片段,生成 TypeScript 类型定义和对应的 axios 请求函数:
(粘贴 OpenAPI JSON 片段)
要求:
1. 类型命名:接口名 + 请求/响应后缀(如 GetUserListReq / GetUserListResp)
2. 生成到 src/api/types.ts 和 src/api/user.ts
3. 响应统一处理 code !== 0 的情况
typescript
// 生成结果示意:src/api/types.ts
export interface GetUserListReq {
page: number
pageSize: number
keyword?: string
status?: number
}
export interface UserItem {
id: number
username: string
email: string
role: string
createdAt: string
}
export interface GetUserListResp {
list: UserItem[]
total: number
}
3.3 接口变更时自动更新文档
text
对比以下两个版本的接口定义,输出变更说明文档:
- 旧版本:{...}
- 新版本:{...}
要求输出:
1. 变更列表(新增/修改/删除的字段和接口)
2. 对前端的影响(需要修改的调用方、类型文件)
3. 迁移建议
最佳实践:把接口文档生成脚本接入 CI,接口定义变更时自动重新生成文档并提交,保证"文档与代码同步"。
四、项目 README、开发指南、部署文档一键生成
4.1 生成项目 README
text
请为当前项目生成 README.md,要求:
1. 项目简介(一句话 + 详细说明)
2. 技术栈表格
3. 快速开始(安装、开发、构建、预览命令)
4. 目录结构说明
5. 环境变量说明表
6. 常见问题(FAQ)
先读取项目关键文件(package.json、vite.config、README 现有内容)再生成
4.2 生成开发指南
text
生成《新手指南:如何在本地跑起这个项目》文档:
- 前置要求(Node 版本、包管理器)
- 环境变量配置(.env 模板)
- 启动步骤(含常见报错处理)
- 如何调试(DevTools、Vite 代理说明)
- 提交代码的规范流程
4.3 生成部署文档
text
生成部署文档,包含:
1. 构建命令与产物说明(dist 目录内容)
2. Nginx 配置示例(含 history 路由回退、gzip、缓存策略)
3. Dockerfile 示例(多阶段构建)
4. 部署后的验证清单
dockerfile
# Dockerfile 示例(多阶段构建)
FROM node:20-alpine AS build
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM nginx:alpine
COPY --from=build /app/dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
nginx
# nginx.conf 示例
server {
listen 80;
root /usr/share/nginx/html;
index index.html;
# history 路由回退
location / {
try_files $uri $uri/ /index.html;
}
# 静态资源缓存
location /assets/ {
expires 30d;
add_header Cache-Control "public, immutable";
}
# gzip
gzip on;
gzip_types text/plain text/css application/javascript application/json;
}
五、文档与代码同步维护技巧
5.1 建立"文档即代码"工作流
代码变更 → CI 触发 → AI 重新生成文档 → 差异对比 → 自动提交 or 人工确认
具体实现思路(伪配置):
yaml
# .github/workflows/docs.yml
name: Auto Generate Docs
on:
push:
paths: ['src/**']
jobs:
generate-docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci
- run: npm run docs:generate # 调用 AI 或工具自动生成文档
- run: npm run docs:check # 检查文档是否过期
5.2 文档注释规范
让 AI 统一给代码补 JSDoc / TSDoc 注释,注释即文档源:
typescript
/**
* 获取用户列表
* @param params - 查询参数
* @param params.page - 页码,从 1 开始
* @param params.pageSize - 每页条数,最大 100
* @returns 用户列表与总数
* @throws 网络异常或业务错误(code !== 0)
*/
export async function getUserList(params: GetUserListReq): Promise<GetUserListResp> {
return request.get('/api/users', { params })
}
5.3 定期"文档健康检查"
text
请对比 src/components 下的组件和 docs/components 下的文档:
1. 找出没有文档的组件
2. 找出文档与组件 props/emits 不一致的地方
3. 输出需要补档/改档的清单
六、总结:文档提效三原则
- 能自动生成的绝不手写:组件文档、接口文档、类型定义全部由 AI 生成;
- 文档跟随代码走:文档放仓库、CI 自动刷新,杜绝"文档过期";
- 文档为读者服务:先写"新人视角"的快速上手,再写"深度参考"的细节。
AI 让文档从"负担"变成"资产"------代码写完的瞬间,文档已经自动生成好了。团队的新人上手成本、跨模块协作效率,都会得到质的提升。
下一篇,工程化板块最后一篇:AI 赋能前端测试------单元测试、E2E 测试自动生成,把测试覆盖率拉上去。
系列导航:
- 第 7 篇:AI + 前端工程化
- 第 8 篇:AI 自动化文档(本篇)
- 第 9 篇:AI 赋能前端测试