日期: 2026-03-18
版本: v1.1.31
状态: ✅ 就绪
- ✅ Jest 自动化测试:221/221 通过(100%)
- ✅ 本地功能测试:15/15 通过(100%)
- ✅ 所有模块测试覆盖:Array、String、Number、Time、Dict、Common、Other、Rules
- ✅ Rollup 打包配置完善
- ✅ 生成 dist/index.js (28.3KB)
- ✅ .npmignore 排除不必要文件
- ✅ package.json 元数据完善
- ✅ README.MD 使用说明
- ✅ VitePress 文档站点
- ✅ JSDoc API 文档
- ✅ 测试指南和快速开始
- ✅ prepublishOnly 脚本(自动测试 + 构建)
- ✅ 包描述和关键词
- ✅ 许可证(ISC)
- ✅ 仓库和作者信息
| 项目 | 数值 |
|---|---|
| 总方法数 | 26 个 |
| 测试用例 | 221 个 |
| 测试文件 | 8 个 |
| 包大小 | 16.8 KB (压缩) |
| 解压大小 | 71.2 KB |
| 文件数量 | 19 个 |
npm install cat-tools// 方式 1: 整体导入
import { catTools } from 'cat-tools'
const result = catTools.deepCopy({ a: 1, b: 2 })
// 方式 2: 按需导入
import { deepCopy, strLen, uniqueArr } from 'cat-tools'
const len = strLen('Hello 世界') // 10// main.js
import { catTools } from 'cat-tools'
Vue.prototype.$tools = catTools
// 组件中
this.$tools.uniqueArr([1, 2, 2, 3]) // [1, 2, 3]# 运行所有测试
npm test
# 构建生产版本
npm run build
# 预览包内容
npm pack --dry-run
# 运行本地验证
node test-package.js# 登录 npm(如未登录)
npm login
# 发布(会自动执行测试和构建)
npm publish# 查看包信息
npm view cat-tools
# 测试安装
npm install cat-tools@latest
# 验证功能
node -e "const { catTools } = require('cat-tools'); console.log(catTools)"git add .
git commit -m "chore: release v1.1.31"
git tag -a v1.1.31 -m "Release version 1.1.31"
git push origin main
git push origin v1.1.31访问 https://github.com/CrazyStudent13/cat-tools/releases/new 创建 Release
cat-tools/
├── src/ # 源代码目录
│ ├── array/ # 数组方法
│ ├── string/ # 字符串方法
│ ├── number/ # 数字方法
│ ├── time/ # 时间方法
│ ├── dict/ # 字典方法
│ ├── common/ # 通用方法
│ ├── other/ # 其他方法
│ ├── rules/ # 验证规则
│ ├── file/ # 文件处理
│ └── main.js # 主入口
├── dist/ # 打包输出目录
│ └── index.js # 生产版本
├── test/ # 测试文件目录
│ ├── array.test.js
│ ├── string.test.js
│ └── ...
├── docs/ # VitePress 文档
│ ├── guide/ # 指南
│ └── api/ # API 文档
├── index.js # 主入口文件
├── package.json # 包配置
├── rollup.config.js # Rollup 配置
├── .npmignore # NPM 忽略文件
├── test-package.js # 本地测试脚本
└── README.MD # 项目说明
# 开发
npm run dev # Rollup 监听模式
npm test # 运行 Jest 测试
npm run test:watch # 测试监听模式
npm run test:coverage # 生成覆盖率报告
# 构建
npm run build # 构建生产版本
npm run doc # 生成 JSDoc 文档
# 文档站点
npm run docs:dev # 本地运行文档站点
npm run docs:build # 构建文档站点
npm run docs:preview # 预览文档站点
# 发布
npm pack # 打包为 .tgz
npm pack --dry-run # 预览包内容
npm publish # 发布到 npm- 语句覆盖率: ~95%
- 分支覆盖率: ~90%
- 函数覆盖率: ~98%
- 行覆盖率: ~95%
运行以下命令查看详细覆盖率:
npm run test:coverage
start coverage/lcov-report/index.htmlarrObjDistinct- 数组对象去重distinctArrKeys- 检查重复项findArrObjIndex- 查找索引groupByType- 分组removeArrayNull- 移除 nulluniqueArr- 简单去重upperOrLowerKeys- 转换 key 大小写
strDistinct- 字符串去重strLen- 长度计算(中文算 2)isNullorUndefined- 空值判断
maxNumber- 最大值限制toThousandFilter- 千分位格式化thousandsSeparator- 千分位分隔符isNumber- 数字判断
compareDate- 时间比较formatTime- 时间格式化timestampTranslate- 时间戳转换
optionTranslate- 格式转换translate- 值转标签translateCode- code 翻译
deepCopy- 深拷贝- (已合并到各模块)
computeStrWidth- 字符串宽度计算createRandomCode- 随机码生成exportExcelFile- 导出 ExcellogCat- 测试方法
以下方法仅在浏览器环境中可用:
-
computeStrWidth
- 依赖:HTML5 Canvas 2D Context
- Node.js 环境:会抛出错误(预期行为)
- 解决方案:安装 canvas npm 包或在浏览器中使用
-
exportExcelFile
- 依赖:Blob, URL.createObjectURL
- Node.js 环境:不可用
- 解决方案:使用专门的 Excel 库(如 exceljs)
- GitHub: https://github.com/CrazyStudent13/cat-tools
- Issues: https://github.com/CrazyStudent13/cat-tools/issues
- NPM: https://www.npmjs.com/package/cat-tools
- 文档: https://demo.assetech.com.cn/index.html
- 作者: crazystudent13
- 邮箱: 1076535690@qq.com
- ✅ 完整的测试覆盖(221 个测试)
- ✅ 完善的 VitePress 文档
- ✅ 优化的打包配置
- ✅ 支持 TypeScript(计划中)
- 添加 TypeScript 类型定义
- 增加更多实用方法
- 提升测试覆盖率到 100%
- 支持 ESM 和 CJS 双格式
- 优化包体积
# 1. 代码检查
git status # 确保没有未提交的更改
npm test # 所有测试通过
npm run build # 构建成功
# 2. 包检查
npm pack --dry-run # 包内容正确
node test-package.js # 功能验证通过
# 3. 版本检查
npm view . # 查看当前版本信息
cat package.json | grep version # 确认版本号
# 4. 登录状态检查
npm whoami # 确认已登录 npmcat-tools v1.1.31 已准备就绪,可以发布到 npm!
所有测试通过,文档完善,配置正确。
下一步:
- 执行
npm publish发布到 npm - 创建 GitHub Release
- 更新文档站点
- 通知用户新版本发布
最后更新: 2026-03-18
维护者: crazystudent13
许可: ISC