二者的版本请见 package.json。
git clone https://github.com/NSDN/nya-client.git
参与开发请务必查看 CONTRIBUTING.md 文件。
-
安装依赖(仅执行一次即可):
pnpm install
-
启动开发服务器:
pnpm run dev
版本请查看 package.json 文件。
名称 | 功能 |
---|---|
TypeScript | JavaScript 类型扩张语言 |
Vite | JavaScript 编译工具 |
Vue | JavaScript 框架 |
Naive UI | Vue UI 组件 |
Vue Router | Vue 路由工具 |
Pinia | Vue 状态管理工具 |
Axios | HTTP 客户端库 |
仅为目录结构的参考,并非完全一致。
src/
├── features/ # 按功能模块化,高内聚
│ ├── attendance/ # 打卡模块
│ │ ├── apis/ # 打卡模块的 API 封装
│ │ ├── components/ # 打卡专用组件
│ │ ├── composables/ # 打卡专用的组合函数(业务逻辑)
│ │ ├── stores/ # Pinia 模块状态(仅状态,无业务逻辑)
│ │ ├── views/ # 打卡页面视图
│ │ └── index.ts # 对外统一导出接口
│ │
│ ├── leave/ # 请假申请模块
│ ├── printing/ # 打印模块
│ └── ... 其他功能模块
│
├── shared/ # 公共模块,低耦合
│ ├── components/ # 通用组件(如:Modal、Button)
│ ├── composables/ # 通用组合函数(hooks)
│ ├── utils/ # 工具函数
│ ├── constants/ # 常量
│ ├── types/ # 通用类型定义
│ └── services/ # 通用服务(如:axios 封装)
│
├── router/ # Vue Router 配置
│ └── index.ts
│
├── store/ # 全局状态管理(使用 Pinia)
│ └── index.ts
│
├── App.vue # 根组件
└── main.ts # 入口文件