README 仅保留概览/结构/基础设施/安装/开发命令; 架构、新增页签、子模块管理细节移至 docs/ 下三个 md: - docs/architecture.md:模块注册/PageShell/KeepAlive/存活校验 - docs/add-module.md:新增页签步骤 + 元数据字段速查 + 常见变体 - docs/submodule-timeTableFix.md:submodule 升级/clone/移除/独立访问
60 lines
2.4 KiB
Markdown
60 lines
2.4 KiB
Markdown
# 子项目 timeTableFix(git submodule)
|
||
|
||
timeTableFix(ICS 日程整理器)作为 **git submodule** 被 mainPage 引入,位于 `third_party/timeTableFix`,独立仓库为 https://git.zikai.wang/zikai/timeTableFix.git 。
|
||
|
||
## 集成方式
|
||
|
||
mainPage 侧的 `src/modules/timetable/Timetable.vue` 包装器 import 子模块的 `src/App.vue` 作为组件,套 `PageShell` 统一容器与标题,并持有 KeepAlive 匹配名 `defineOptions({ name: 'timetable' })`。
|
||
|
||
- 子模块 `App.vue` 保持纯净(不持 name、不依赖宿主),可独立 `npm run build` / `npm test` / 部署。
|
||
- 构建期集成(非 iframe),共享 mainPage 的构建、依赖(`ical.js`)与 KeepAlive 缓存。
|
||
- 子模块样式已隔离(scoped + `ttf-` 前缀类名),全局重置仅在独立 app 的 `main.js` 加载,不污染宿主。
|
||
|
||
## 克隆(含子模块)
|
||
|
||
```bash
|
||
git clone --recursive https://git.zikai.wang/zikai/zMainPage.git mainPage
|
||
```
|
||
|
||
若已 clone 但未带子模块:
|
||
|
||
```bash
|
||
cd mainPage
|
||
git submodule update --init --recursive
|
||
```
|
||
|
||
## 升级子模块到最新版本
|
||
|
||
```bash
|
||
cd mainPage
|
||
git submodule update --remote third_party/timeTableFix # 拉取最新
|
||
cd third_party/timeTableFix && git checkout master # 固定到目标分支/commit
|
||
cd ../..
|
||
git add third_party/timeTableFix # 更新 gitlink 指针
|
||
git commit -m "chore: 升级 timeTableFix 子模块"
|
||
npm run build # 重新构建 mainPage
|
||
git push # 推送 mainPage(gitlink)
|
||
```
|
||
|
||
> 推送顺序:先确保子模块的 commit 已推到 timeTableFix.git,再推 mainPage 的 gitlink,否则别人 clone mainPage 时拉不到子模块对应 commit。
|
||
|
||
## 移除子模块集成(仅移除 mainPage 页签,不影响 timeTableFix 本身)
|
||
|
||
```bash
|
||
cd mainPage
|
||
git submodule deinit -f third_party/timeTableFix
|
||
git rm third_party/timeTableFix
|
||
git commit -m "chore: 移除 timeTableFix 子模块集成"
|
||
```
|
||
|
||
同时删 `src/modules/timetable/` 文件夹即移除页签。timeTableFix 独立仓库与部署不受影响。
|
||
|
||
## 独立访问
|
||
|
||
timeTableFix 独立 app 可经 Apache `/ttf/` 反代单独访问(`https://zikai.wang/ttf/`),与 mainPage 组件集成互不冲突。反代配置:
|
||
|
||
```apache
|
||
ProxyPass /ttf/ http://127.0.0.1:8888/
|
||
ProxyPassReverse /ttf/ http://127.0.0.1:8888/
|
||
```
|