148 lines
4.3 KiB
Markdown
148 lines
4.3 KiB
Markdown
# Changelog
|
||
|
||
All notable changes to this project will be documented in this file.
|
||
|
||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||
|
||
## [Unreleased]
|
||
|
||
## [1.2.3] - 2026-03-06
|
||
|
||
### Changed
|
||
|
||
- **发布与包管理**
|
||
- 移除 `packageManager` 与 `preinstall` 的 pnpm 强约束,支持使用 npm 安装与发布
|
||
- `prepublishOnly` 改为 `npm run build`,便于 npm 发布流程
|
||
|
||
## [1.2.2] - 2026-03-06
|
||
|
||
### Added
|
||
|
||
- **性能耗时日志**
|
||
- 所有关键 API 接口(项目初始化、更新、目录/文件列表)添加 INFO 级别耗时日志,包含 `elapsedMs` 数值字段
|
||
- 中间步骤(备份、解压、文件写入、清理等)添加 DEBUG 级别耗时日志
|
||
- 错误路径统一添加 `elapsedMs` 字段,便于排查超时和异常耗时问题
|
||
|
||
### Changed
|
||
|
||
- **日志级别优化**
|
||
- 中间步骤日志(备份、解压、文件写入等"开始"类日志)从 INFO 降级为 DEBUG,减少生产环境日志噪音
|
||
- 通过 `LOG_LEVEL` 环境变量控制日志输出级别(error > warn > info > debug)
|
||
|
||
- **日志格式统一**
|
||
- 所有耗时字段统一使用 `elapsedMs`(数值类型,单位毫秒),便于日志聚合和监控系统解析
|
||
- 移除冗余的重复日志输出
|
||
|
||
### Fixed
|
||
|
||
- **downloadAllFiles 耗时统计修正**
|
||
- 将耗时记录从压缩准备阶段移至 `archive.on("end")` 事件,准确反映实际压缩完成时间
|
||
|
||
## [1.2.0] - 2026-02-06
|
||
|
||
### Added
|
||
|
||
- **CLI 参数解析增强**
|
||
- 支持在命令行中传递 `--KEY=VALUE` 格式的参数
|
||
- 自动将这些参数写入 `process.env` 环境变量
|
||
- 可以在启动服务时通过命令行覆盖环境变量配置
|
||
|
||
### Changed
|
||
|
||
- **命令灵活性提升**
|
||
- `start` 和 `restart` 命令现在允许接受未知选项
|
||
- 允许传递额外的自定义参数给服务
|
||
|
||
## [1.1.1] - 2026-02-04
|
||
|
||
### Added
|
||
|
||
- **CLI 版本查询增强**
|
||
- 新增 `-v` 参数作为查看版本的快捷方式(支持 `-v, --version`)
|
||
|
||
## [1.1.0] - 2026-02-03
|
||
|
||
### Changed
|
||
|
||
- **ES Module 迁移**
|
||
- 全面迁移到 ES Module (ESM) 语法
|
||
- 所有 `require` 替换为 `import`
|
||
- 所有 `module.exports` 替换为 `export`
|
||
- 更新 Node.js 版本要求至 >= 22.0.0
|
||
- `package.json` 添加 `"type": "module"`
|
||
|
||
- **构建流程更新**
|
||
- 新增 `scripts/build.js` 使用 esbuild 打包
|
||
- 输出格式设置为 ESM
|
||
- 支持代码压缩和发布优化
|
||
|
||
### Added
|
||
|
||
- **LOG_BASE_DIR 容错增强**
|
||
- 当配置路径无法创建时自动回退到系统临时目录
|
||
- 避免因路径问题导致服务启动失败
|
||
|
||
## [1.0.0] - 2025-02-03
|
||
|
||
### Added
|
||
|
||
- **CLI 工具支持**
|
||
- 新增 `qiming-file-server` CLI 命令行工具
|
||
- 支持 `start`、`stop`、`restart`、`status` 命令
|
||
- 支持 `--port`、`--env`、`--config` 等命令行参数
|
||
- 支持通过命令行参数覆盖环境变量配置
|
||
|
||
- **跨平台支持**
|
||
- 支持 Windows、Linux、macOS 三大平台
|
||
- 使用 `cross-spawn` 确保跨平台命令执行
|
||
- 使用 `tree-kill` 实现跨平台进程终止
|
||
- PID 文件管理支持多平台临时目录
|
||
|
||
- **健康检查端点**
|
||
- 新增 `/health` HTTP 端点
|
||
- 返回服务状态、版本、运行时间、内存使用等信息
|
||
|
||
- **环境变量配置**
|
||
- 完整的配置文件加载机制
|
||
- 支持 `env.development`、`env.production`、`env.test`
|
||
- 详细的路径配置项说明
|
||
- CLI 专用配置项
|
||
|
||
- **项目文档**
|
||
- 新增 `docs/ENV.md` 完整的环境变量配置指南
|
||
- 更新 `README.md` 包含 CLI 使用说明
|
||
- 新增 `AGENTS.md` 和 `CLAUDE.md` 软链接
|
||
|
||
- **测试**
|
||
- 新增 `tests/unit/cli.test.js` 单元测试
|
||
- 覆盖服务管理器、环境变量工具、跨平台兼容性等
|
||
|
||
### Changed
|
||
|
||
- **包配置**
|
||
- `package.json` 新增 `bin` 字段支持 CLI 全局安装
|
||
- 新增 `commander`、`cross-spawn`、`fs-extra`、`tree-kill` 依赖
|
||
|
||
### Fixed
|
||
|
||
- **启动脚本**
|
||
- 修复 `scripts/start-cli.js` 实际加载 server.js 的问题
|
||
- 修复 `router.js` 中 package.json 路径解析问题
|
||
|
||
### Security
|
||
|
||
- 使用 `path.resolve` 和 `fs.readFileSync` 替代 `require` 确保安全性
|
||
|
||
## [0.1.0] - 2024-XX-XX
|
||
|
||
Initial release of qiming-file-server project.
|
||
|
||
### Added
|
||
|
||
- 项目基础结构
|
||
- Express 服务器配置
|
||
- 构建路由、项目路由、代码路由
|
||
- pnpm 磁盘空间优化功能
|
||
- 日志缓存管理
|