🎉 限时特惠活动公告、获取优惠码、最高立减3200元
PC端二次开发指南(小白版)
📖 本指南专门针对 PC 端(Nuxt.js)的二次开发,从零开始教你如何配置、开发和部署 PC 端项目。
📋 目录
PC 端使用的技术栈:
技术
版本
说明
| Nuxt.js | 3.12.4 | Vue.js 的服务端渲染框架 |
| Vue.js | 3.3+ | 前端框架 |
| TypeScript | 4.9+ | JavaScript 的超集,提供类型检查 |
| Element Plus | 2.7.3 | UI 组件库 |
| Pinia | 2.0.3 | Vue 状态管理工具 |
| Tailwind CSS | - | CSS 框架 |
| pnpm | 9.12.3 | 包管理工具 |
核心特性:
2.1 检查 Node.js 版本
PC 端必须使用 Node 16 或更高版本(推荐 Node 16 或 18)。
检查当前版本:
node -v
如果版本低于 16,请先升级 Node.js:
PC 端项目使用 pnpm 管理依赖(不要用 npm 或 yarn)。
安装 pnpm:
npm install -g pnpm@9.12.3
验证安装:
pnpm -v
💡 为什么用 pnpm?
步骤 1:进入 PC 端目录
cd pc
步骤 2:安装依赖包
pnpm install
⚠️ 重要提示:
安装成功的标志:
PC 端需要配置 3 个环境文件:
copy .env.example .env
copy .env.development.example .env.development
copy .env.production.example .env.production
Mac/Linux 系统:
cp .env.example .env
cp .env.development.example .env.development
cp .env.production.example .env.production
💡 文件说明:
4.1 配置文件 1:.env(全局配置)
打开 pc/.env 文件,通常保持默认值即可:
VITE_RELEASE_PATH=../server/public
VITE_BASE_URL=/
VITE_SSR=
NITRO_PORT=3001
配置说明:
配置项
说明
建议值
VITE_RELEASE_PATH
打包文件输出目录
保持默认
VITE_BASE_URL
网站访问路径
保持 /
VITE_SSR
是否启用 SEO 模式
开发时留空
NITRO_PORT
开发服务器端口
默认 3001
关于 SSR(重要):
💡 新手建议:开发时保持
VITE_SSR=留空,这样更简单。
4.2 配置文件 2:.env.development(开发环境)
打开 pc/.env.development,配置后端 API 地址:
VITE_API_URL='http://你的后端地址'
配置示例:
示例 1:本地开发(后端在本地运行)
VITE_API_URL='http://127.0.0.1:8000'
示例 2:连接测试服务器
VITE_API_URL='http://test.yourdomain.com'
示例 3:连接线上服务器
VITE_API_URL='https://api.yourdomain.com'
🎯 重点:这个地址必须是你的后端服务器地址,开发时所有 API 请求都会发送到这里。
4.3 配置文件 3:.env.production(生产环境)
打开 pc/.env.production,配置生产环境的 API 地址:
VITE_API_URL=''
配置说明:
情况 1:普通打包(非 SEO 模式) ⭐ 推荐新手
配置完成后,就可以启动开发服务器了。
5.1 启动开发服务器
pnpm dev
5.2 访问网站
启动成功后,终端会显示:
✔ Nuxt 3.12.4 is ready!
➜ Local: http://localhost:3001/
➜ Network: http://192.168.1.100:3001/
打开浏览器访问:http://localhost:3001
5.3 开发模式特点
💡 提示:开发时不要关闭终端窗口,保持开发服务器运行。
开发完成后,需要打包成生产版本部署到服务器。
6.1 普通打包(非 SEO 模式)⭐ 推荐新手
适用场景:不需要搜索引擎收录的项目(内部系统、会员系统等)
第 1 步:确认配置
打开 pc/.env,确保 VITE_SSR 为空:
VITE_SSR=
打开 pc/.env.production,VITE_API_URL 留空:
VITE_API_URL=''
第 2 步:执行打包命令
pnpm build
第 3 步:等待打包完成
打包过程通常需要 1-3 分钟,终端会显示进度。
打包成功的标志:
将 server/public/ 目录下的所有文件上传到你的服务器即可。
6.2 SEO 打包(SSR 模式)
适用场景:需要搜索引擎收录的项目(官网、博客、新闻站等)
第 1 步:启用 SSR
打开 pc/.env,给 VITE_SSR 赋值(任意值都行):
VITE_SSR=1
第 2 步:配置生产环境 API 地址
打开 pc/.env.production,必须填写后端地址:
VITE_API_URL='https://api.yourdomain.com'
⚠️ 重要:SSR 模式下,API 地址不能留空!
第 3 步:执行 SSR 打包命令
pnpm build:ssr
第 4 步:部署
SSR 模式的部署比较复杂:
💡 新手提示:如果不需要 SEO,建议使用普通打包模式,部署更简单。
7.1 页面路由(自动路由系统)
Nuxt.js 使用文件系统路由,在 pc/src/pages/ 下创建文件即可自动生成路由。
路由规则:
pc/src/pages/
├─ index.vue → 访问路径: /
├─ about.vue → 访问路径: /about
├─ user/
│ ├─ index.vue → 访问路径: /user
│ └─ profile.vue → 访问路径: /user/profile
└─ article/
└─ [id].vue → 访问路径: /article/123(动态路由)
示例:创建一个关于我们页面
创建文件 pc/src/pages/about.vue:
.about-page {
padding: 20px;
}
保存后,直接访问 http://localhost:3001/about 即可看到页面。
7.2 调用后端 API
方式一:创建 API 文件(推荐)
在 pc/src/api/ 下创建 API 接口文件:
// pc/src/api/article.ts
import request from '@/utils/request'
// 获取文章列表
export function getArticleList(params: any) {
return request.get('/api/article/list', { params })
}
// 获取文章详情
export function getArticleDetail(id: number) {
return request.get('/api/article/detail', { params: { id } })
}
// 创建文章
export function createArticle(data: any) {
return request.post('/api/article/create', data)
}
方式二:在页面中使用
7.3 状态管理(Pinia)
在 pc/src/stores/ 下创建状态管理文件:
// pc/src/stores/user.ts
import { defineStore } from 'pinia'
export const useUserStore = defineStore('user', {
state: () => ({
userInfo: null,
token: '',
isLogin: false
}),
getters: {
// 计算属性
userName: (state) => state.userInfo?.name || '游客'
},
actions: {
// 设置 Token
setToken(token: string) {
this.token = token
this.isLogin = true
},
// 设置用户信息
setUserInfo(info: any) {
this.userInfo = info
},
// 退出登录
logout() {
this.token = ''
this.userInfo = null
this.isLogin = false
}
}
})
在页面中使用:
7.4 组合式函数(Composables)
在 pc/src/composables/ 下创建可复用的逻辑:
// pc/src/composables/useArticle.ts
export const useArticle = () => {
const loading = ref(false)
const list = ref([])
// 获取文章列表
const fetchList = async () => {
loading.value = true
try {
const data = await getArticleList()
list.value = data.lists
} catch (error) {
console.error('获取文章失败', error)
} finally {
loading.value = false
}
}
return {
loading,
list,
fetchList
}
}
在页面中使用:
7.5 SEO 优化
使用 useHead 设置页面标题和描述:
问题 1:pnpm install 失败
错误提示:
ERR_PNPM_...
解决方法:
rmdir /s /q node_modules
del pnpm-lock.yaml
pnpm install
pnpm store prune
pnpm install
pnpm config set registry https://registry.npmmirror.com
pnpm install
问题 2:Node 版本不对
错误提示:
The engine "node" is incompatible with this module
解决方法:
检查 Node 版本:
node -v
如果版本低于 16,请升级 Node.js:
问题 3:端口被占用
错误提示:
Port 3001 is already in use
解决方法:
方法 1:更换端口
修改 pc/.env 文件:
NITRO_PORT=3002
方法 2:关闭占用进程(Windows)
netstat -ano | findstr :3001
taskkill /PID 12345 /F
问题 4:打包后访问白屏
可能原因:
问题 5:API 请求跨域错误
错误提示:
Access to XMLHttpRequest has been blocked by CORS policy
解决方法:
开发环境:配置代理(修改 nuxt.config.ts)
export default defineNuxtConfig({
nitro: {
devProxy: {
'/api': {
target: 'http://127.0.0.1:8000',
changeOrigin: true
}
}
}
})
生产环境:后端需要配置 CORS 跨域支持。
问题 6:热重载不生效
解决方法:
pnpm dev
rmdir /s /q .nuxt
pnpm dev
9.1 常用命令
pnpm install
pnpm dev
pnpm build
pnpm build:ssr
pnpm preview
pnpm lint
pnpm prettier
9.2 配置文件位置
文件
路径
说明
全局配置
pc/.env
所有环境通用
开发环境
pc/.env.development
本地开发用
生产环境
pc/.env.production
打包上线用
Nuxt 配置
pc/nuxt.config.ts
Nuxt 框架配置
包管理配置
pc/package.json
依赖和脚本
TypeScript 配置
pc/tsconfig.json
TS 配置
9.3 重要目录结构
pc/
├── src/
│ ├── pages/ # 页面文件(自动路由)
│ ├── components/ # 公共组件
│ ├── api/ # API 接口定义
│ ├── stores/ # 状态管理(Pinia)
│ ├── composables/ # 组合式函数
│ ├── layouts/ # 布局组件
│ ├── plugins/ # 插件
│ ├── utils/ # 工具函数
│ ├── assets/ # 静态资源
│ └── app.vue # 根组件
├── .env # 全局配置
├── .env.development # 开发环境配置
├── .env.production # 生产环境配置
├── nuxt.config.ts # Nuxt 配置
└── package.json # 项目配置
9.4 开发流程速查
首次开发:
日常开发:
打包部署:
🎯 总结
本指南涵盖了 PC 端二次开发的所有关键步骤:
这个 pages 目录是整个 PC 端网站的"页面中心",每个文件夹就是一个功能模块。我按功能类型给你分类讲解:
chat - 通用聊天页面
dialogue - 对话助手
chat.vue - 问答助手(文字问答)role.vue - 角色助手(不同AI角色扮演)digital - 数字人对话
draw - AI 绘画
dalle.vue - DALL-E 模型sd.vue - Stable Diffusion 模型mj.vue - Midjourney 模型doubao.vue - 豆包模型creation - AI 文字创作
video - AI 视频生成
music - AI 音乐生成
ai_ppt - AI PPT 生成
index.vue - 主页面history.vue - 历史记录detail.vue - 详情页digital_human - 数字人制作
application - 应用中心
app_center - 应用中心首页
robot_square - 机器人广场
user - 用户个人中心
center.vue - 个人资料balance.vue - 余额管理member.vue - 会员中心recharge.vue - 充值notification.vue - 通知task_reward.vue - 任务奖励recharge - 充值页面
_components 子目录存放私有组件这是一个功能非常完整的 AI 综合平台,涵盖了对话、绘画、视频、音乐、PPT、思维导图等多种 AI 能力!
祝你开发顺利!🚀