补充技术栈、目录结构、开发(含 Django 代理前缀)与 deploy.ps1 部署要点,并互链 ViperWebSite / VenomWebSite。
3.3 KiB
3.3 KiB
GVSite
GVSDS 工作室官网(www.gvsds.com)前端源码,同时承载 invite 子域页面。
后端由 Django 站点提供(API、鉴权、成员/项目数据),本仓库只含前端。
技术栈
- Vue 3(
<script setup>+ TypeScript) - Vite 8(rolldown)
- Vue Router 5(
createWebHistory,干净 URL) - Pinia(站点状态)
- Tailwind CSS v4(
@tailwindcss/vite)+ Element Plus - axios(API)、marked(文档渲染)
- Lenis 全局平滑惯性滚动
- Font Awesome(图标)、
@element-plus/icons-vue
目录结构
src/
├─ App.vue 根组件
├─ main.ts 入口
├─ router/index.ts 路由表(www + invite 子域)
├─ layouts/SiteLayout.vue 站点骨架:顶栏 + 超级菜单 + 页脚
├─ components/ CookieBanner / GerpUserDropdown / MegaMenu* / SiteFooter
├─ data/megaMenus.ts 超级菜单数据(栏目 → 子项)
├─ api/community.ts 社区接口
├─ stores/site.ts 站点状态
├─ assets/ 全局样式(main.css / gvsds-page.css / community.css / cookie.css)
└─ views/ 页面
├─ HomeView / AboutView / ContactView / SupportView / GalleryView / MembersView
├─ DocumentView / DocReaderView / IntegrityReportView / UserCardView / UnauthorizedView
├─ community/ 社区首页 / 帖子 / 发帖
├─ invite/ 邀请子域:首页 / 申请 / 面试 / 招聘
├─ members/ 成员卡:TermiNexus / YuanZe / BSmooth
├─ methodology/ 方法论:协同编码
├─ plan/ 计划:N.R.C. 10 年计划 / We Are The Future 计划
├─ project/ 项目
└─ errors/ 403 / 404 / 500 / 503
deploy.ps1 构建 + 部署脚本(见下)
开发
npm install
npm run dev # http://localhost:5174(监听 0.0.0.0)
开发服务器把后端请求代理到本地 Django http://127.0.0.1:8000,代理前缀:/api、/API、/Auth、/Query、/Modify、/assets、/Invite、/Members、/ProJect。
只起前端不起后端:页面能打开,但依赖接口的部分(社区、成员、登录态)会失败。
构建与部署
npm run build # vue-tsc -b 类型检查 + vite build → dist/
.\deploy.ps1 # 备份原站文件 → 全量编译 → 同步产物到 TempLate
要点:
vite.config.ts设置assetsDir: 'GVSite',产物收敛到dist/GVSite/,页面内以GVSite/...相对路径引用;部署时同步到../TempLate/GVSite/deploy.ps1会先把「已被 Vue 页面替换的 TempLate 原始文件」备份到backup/www,再清理旧产物目录、编译、同步- 部署前先提交源码,避免产物领先于源码
deploy.ps1带 UTF-8 BOM:Windows PowerShell 5.1 会用 ANSI 代码页解析无 BOM 的 UTF-8 脚本,中文提示会乱码甚至解析失败。
相关仓库
- ViperWebSite — Viper 语言官网(viper.gvsds.com)
- VenomWebSite — Venom 包管理器官网(venom.gvsds.com)