Reference · 遇到生词先查这里
每条一句人话,加一处「在本项目哪里」。技术词来自官方文档,项目词来自源码。
用法
课程里任何一个你没听说过的词,先在这查。查不到就直接问我 ——那说明我用了一个没解释的词,我会补进来。这张表会一直长。
| 词 | 人话 | 在本项目 |
|---|---|---|
SFC / .vue |
单文件组件。一个文件里同时写模板、逻辑和样式,等于一个 UI 部件 | src/views/**/*.vue |
<script setup> |
写组件逻辑的新写法。文件顶层声明的变量,模板里直接就能用 | src/App.vue:1 |
| 响应式 |
读的时候记账、写的时候通知。你读过某个数据,它一变, Vue 自动重跑你那段逻辑——省掉手写
emit/on
|
课 02 |
ref / reactive |
把一个值/对象变成响应式的。ref 取值要写
.value(模板里不用)
|
满地都是 |
computed |
派生值。依赖没变就不重算,算过一次会缓存 | — |
watch |
盯住某个数据,变了就跑一段副作用。默认异步执行(flush: 'pre')
|
src/store/modules/GameEvn.ts:44 |
props / emit |
父传子叫 props,子告诉父叫 emit。只能一层一层传 | src/views/Option/Components/ |
| Pinia | Vue 官方的状态管理库。一个能被界面订阅的全局单例, 用来放「跨越组件树、没法用 props 传」的数据 | 14 个 store,见 课 02 |
| store |
Pinia 里的一个单例。三个部件:state(数据)、
getters(派生值)、actions(改数据的方法)
|
src/store/modules/*.ts |
| Vue Router |
路由:URL ↔ 页面组件的对应表。本项目用
hash 路由 (地址里带
#),因为桌面端没有服务器帮忙做 URL 重写
|
src/router/index.ts |
| Element Plus | 现成的 UI 组件库(表格、弹窗、下拉……)。界面上大部分控件都是它的 | el-* 开头的标签 |
| 词 | 人话 | 在本项目 |
|---|---|---|
| Vite |
构建工具(打包 + 开发服务器)。相当于前端的 tsc +
nodemon
|
vite.config.ts |
| mode |
vite --mode pro 决定读哪个 .env.* 文件
|
package.json 的 scripts |
import.meta.env |
Vite 的「环境变量」。但它是构建期替换成字面量的, 不是运行时读取——这是整条运行时配置链存在的理由 | 课 01 |
| 主进程 | Electron 的「壳」。管窗口、菜单、系统能力。只有一个 | electron/main/ |
| 渲染进程 | 窗口里那个 Chromium 页面。本项目的业务几乎全在这层 | src/ |
| IPC |
两个进程之间喊话。两种:invoke/handle(一问一答)、
send/on(单向广播)
|
electron/main/channel/ |
nodeIntegration |
让网页里能直接用 Node(读文件、开子进程)。官方不推荐, 本项目全开了 | electron/main/index.ts:48 |
contextIsolation |
把网页和 Electron 内部隔开的安全墙。本项目关了 | electron/main/index.ts:49 |
| preload | 正常 Electron 里,网页拿系统能力的唯一合规通道。 本项目的 preload 从未被加载,是死代码 | vite.config.ts:62,72(被注释) |
@electron/remote |
本项目实际用的能力入口:在渲染层直接拿主进程的对象。官方已不推荐 | src/utils/extend/electron.ts:1 |
asar / asarUnpack |
打包时源码被塞进一个
asar 归档;里面的可执行文件跑不了,
必须用 asarUnpack 排除出来
|
electron-builder.json5 |
全部摘自 src/locales/zh-CN.ts——这是界面上真实出现的说法。
| 词 | 人话 | 在本项目 |
|---|---|---|
| 游戏资源库 | 浏览、替换、提交资源的主界面。本质是个 SVN 工作副本管理器 |
/workspace → views/Workspace/index.vue
|
| 游戏发布栈 | 把资源变成玩家能拿到的版本的那一串任务 | /option → views/Option/Option.vue |
| pCode | 后端用来认「这是哪一款游戏」的编码。每个请求都带它,带错就操作到别的游戏了 | 登录后由后端下发,envOption.ts:39-45 |
| 测试版 / 正式版 |
GM 页面顶部那个下拉。选「测试版」的实现方式是给 pCode 拼一个 _dev 后缀
|
zh-CN.ts:214-215、GM/GameNotice/index.vue:110-115
|
GameENV |
登录后真正生效的那份配置,存在 sessionStorage 里。不是 .env
|
运行时配置速查卡 |
currentRouter |
名字像路由,其实是「接口打给哪套服务」的开关。GM
弹窗会把它改成 /GM
|
service.ts:67-70 |
| 四步流程 |
发布栈里每条通道固定的四步: 上传① 提交工作台改的资源 → 更新② 压缩资源 → 同步资源③ 编译打包 → 发布④ 推到服务器 |
zh-CN.ts 的 projectOption 段 |
| 开发版 / 测试服 / 正式服 | 三条发布通道。开发版给内部预览网页,测试服给内部测试, 正式服 = 所有玩家 |
publishWebDev / publishWebAlpha /
publishWebProd
|
| 热更 | 不重装客户端,只下发变了的资源。与「发布网页版」是两条不同的产出 | publishProd:'发布正式版热更 ④' |
| 盒子 | 玩家那一侧收热更、启动游戏的客户端。和本工具 GameBox 同名不同物 | 界面原话:「可以在盒子中更新游戏」 |
| 自动构建 | 把四步流程串起来连续跑,一条通道完了自动进下一条 | compileAuto:'自动构建' |
| 工作副本 | 本机上那份和 SVN 仓库对应的目录,是浏览和替换资源的实际对象 | src/api/workspace/index.ts |
| 构建(Jenkins) | 一次远端打包的执行实例,有进度、成败。进度每 5 秒轮询一次 | src/store/modules/jenkins.ts |
两个还没核实的词
盒子:只在发布提示文案里出现过,尚未与业务方核对它到底指什么。
渠道 / channel:登录时会把 Jenkins job 名里的字面量
channel
替换成实际值(envOption.ts:72),但「一个渠道对应什么」需要问人。