万年历(Lunar Calendar App)
中国农历 / 黄历应用:农历转换、黄历宜忌、八字排盘(大运流年流月流日)、每日运势、神煞、梅花易数、称骨算命、节气、佛教节日。移动端优先,支持 PWA 离线安装。
技术栈
- Monorepo:pnpm workspaces
- @lunar/core:TypeScript + tyme4ts(历法引擎),零 UI 依赖,ESM+CJS 双产物
- @lunar/web:React 19 + Vite 6 + TailwindCSS v4 + Zustand 5 + React Router v7 + Framer Motion + vite-plugin-pwa
快速开始
pnpm install
pnpm dev # http://localhost:4258
pnpm test # core 单元测试(vitest,50 例)
pnpm lint # ESLint
pnpm build # 构建 core + web(含 PWA)
pnpm preview # 预览构建产物
需要 Node ≥ 18、pnpm ≥ 9。
文档
详细文档见 docs/:
- ARCHITECTURE.md — 架构、API、路由、状态管理
- REQUIREMENTS.md — 功能点清单与完成状态
- PROGRESS.md — 里程碑与待办
- BUGS.md — 已知 BUG、技术债、死代码
- CHANGELOG.md — 变更日志
- RETROSPECT.md — 会话回顾(做了什么/没做什么/疑问)
目录结构
lunar/
├── docs/ # 项目文档
├── packages/
│ ├── core/ # @lunar/core —— 纯 TS 计算引擎
│ └── web/ # @lunar/web —— React 应用
├── AGENTS.md / CLAUDE.md # 开发代理指引
└── eslint.config.js # ESLint flat config
核心能力
| 模块 | 说明 |
|---|---|
| 历法 | 公历/农历/干支/节气/季节/儒略日/佛历/伊斯兰历/月相 |
| 黄历 | 宜忌、值神(日/时)、二十八宿、彭祖百忌、胎神、冲煞 |
| 八字 | 四柱、十神、藏干、十二长生、大运、流年、神煞、流派切换 |
| 运势 | 每日运势、流年/流月/流日 vs 日主生克冲合 |
| 占卜 | 梅花易数(64 卦)、袁天罡称骨 |
| 其他 | 佛教节日、节气列表、收藏、PWA |