mini-merge-composer
v3.2.3
Published
专业、稳定、纯粹的工具库
Maintainers
Readme
t-comm
项目介绍
t-comm 是一个专业、稳定、纯粹的现代化前端工具库,专为提升开发效率和代码质量而设计。它整合了 100+ 个实用模块,涵盖了从基础数据处理到复杂业务场景的全方位工具链。
核心价值
- 全面覆盖:提供从基础工具函数到复杂业务场景的完整解决方案
- 类型安全:完全基于 TypeScript 开发,提供完整的类型定义和智能提示
- 按需引入:支持 tree-shaking,大幅减少打包体积
- 跨平台适配:统一封装 Web、小程序、uni-app 等多平台 API
- 生产级稳定:经过大量项目验证,确保高可靠性
- 持续维护:活跃的社区贡献和定期的功能更新
应用场景
- Web 应用开发:提供丰富的前端工具函数和 UI 组件
- 小程序开发:深度集成微信、QQ 小程序 API
- 跨端应用:uni-app 项目统一适配
- DevOps 流程:自动化构建、发布、监控工具
- 云服务集成:腾讯云 CDN、COS、配置中心等无缝对接
功能简介
基础工具模块
- 字符串处理:长度检查、随机生成、格式转换、国际化编码
- 数组操作:扁平化、分块、排序、去重、乱序
- 对象操作:深拷贝、合并、排序、路径处理、属性遍历
- 数字计算:千分位格式化、比例计算、随机数、范围生成
- 日期时间:时间戳转换、格式化、倒计时、相对时间显示
- 正则表达式:匹配列表提取、版本号解析
平台适配功能
- 环境检测:微信、QQ、Android、iOS 等运行环境识别
- 小程序工具:页面统计、组件信息、版本更新、图片保存
- uni-app 支持:项目启动、路由拦截、状态缓存、响应式布局
- 地理位置:跨平台定位、坐标转换、地图打开
网络与通信
- SSE 服务器推送:支持 Web 和小程序环境的实时消息推送
- HTTP 请求封装:统一的请求拦截器和错误处理
- JSONP 跨域请求:支持超时和回调函数配置
- 轮询请求管理:可配置间隔和最大轮询次数
数据处理
- JSON 安全解析:避免解析异常,支持带注释的 JSON
- CSV 数据:生成 CSV 文件、对象数组转换
- Excel 处理:工作表读取、JSON 双向转换
- Base64 编码:支持 Unicode 和中文的安全转换
存储管理
- LocalStorage 增强:支持过期时间和自动清理
- Cookie 管理:获取、设置、删除完整生命周期
- SessionStorage:会话级数据存储
- 存储策略:序列化机制和一致性保证
UI 交互组件
- 水印生成:Canvas 绘制、MutationObserver 防篡改
- Toast 提示:成功、失败、加载等多种状态
- 对话框:动态创建、生命周期管理
- Canvas 绘图:图形绘制、图片合成、验证码生成
- 剪贴板:Web 和小程序跨平台复制功能
文件操作
- 文件下载:单个/批量下载、ZIP 打包
- 图片处理:CDN 优化、格式转换、Base64 互转
- Canvas 图片合并:多图垂直合并、尺寸适配
- 文件压缩:JSZip 集成的流式压缩
分享与上传
- 多平台分享:微信、QQ 分享配置和签名生成
- 文件上传:分片上传、断点续传、进度管理
- UniUploader 单例:统一的上传管理和错误处理
- 分享数据注入:动态参数和环境适配
国际化支持
- 多语言字典:动态加载和实时切换
- Excel 翻译转换:批量翻译工具
- 语言包管理:统一的 i18 token 获取
云服务集成
- 腾讯云 CDN:缓存预热、清除、URL 优化
- COS 对象存储:文件上传、下载、Bucket 管理
- Rainbow 配置中心:配置获取、版本对比、实时通知
- RUM 性能监控:性能数据收集和上报
DevOps 工具
- 小程序 CI:微信和 QQ 小程序自动化构建和上传
- 版本管理:语义化版本、变更日志、标签管理
- 自动化发布:构建、上传、通知全流程自动化
- Git 操作:分支管理、提交统计、MR 生成
条形码生成
- 多种格式支持:CODE39、CODE128、EAN/UPC、ITF、MSI、Codabar
- 智能编码:CODE128 自动选择最优编码子集
- Canvas 绘制:高精度条形码渲染
快速上手
安装
使用 npm 安装:
npm install t-comm -S或使用 pnpm:
pnpm add t-comm -S基本使用
支持按需引入(推荐)
import { getMonthDay } from 't-comm';
// 获取指定月份的天数
const days = getMonthDay(2022, 2); // 28完整引入
import tComm from 't-comm';
// 访问所有工具函数
tComm.getMonthDay(2022, 12);单文件引入
对于不支持 tree-shaking 的项目,可以使用单文件引入方式:
// 从 lib 目录引入(CommonJS 格式)
import { timeStampFormat } from 't-comm/lib/time/time';
const stamp = new Date('2020-11-27 8:23:24').getTime();
const formatted = timeStampFormat(stamp, 'yyyy-MM-dd hh:mm:ss');
// 2020-11-27 08:23:24从 es 目录引入,适合不支持 CommonJS 的项目:
import { timeStampFormat } from 't-comm/es/time/time';使用示例
import {
// 日期时间
getMonthDay,
timeStampFormat,
getRelativeTime,
// 字符串处理
checkStringLen,
randomString,
// 数组操作
chunk,
flatten,
// 对象处理
deepEqual,
merge,
// 网络请求
httpGet,
httpPost,
// 存储
savePersist,
getPersist,
// UI 组件
showToast,
createDialog
} from 't-comm';
// 日期处理示例
const currentDays = getMonthDay(new Date().getFullYear(), new Date().getMonth() + 1);
console.log(`本月有 ${currentDays} 天`);
// 字符串处理示例
const randomStr = randomString(10);
console.log(`生成的随机字符串: ${randomStr}`);
// HTTP 请求示例
const fetchData = async () => {
try {
const data = await httpGet('https://api.example.com/data');
console.log(data);
} catch (error) {
console.error('请求失败:', error);
}
};
// 存储示例
savePersist('user', { name: '张三', age: 25 }, { expiry: 3600000 });
const user = getPersist('user');项目构建
如果需要从源码构建:
# 安装依赖
pnpm install
# 构建项目
pnpm run build
# 运行测试
pnpm run test
# 生成文档
pnpm run docs:build常见问题
Q: 为什么有些函数导入后报错?
A: 请确保您的项目支持 ES 模块。如果使用 CommonJS 项目,请从 t-comm/lib 导入。同时检查 TypeScript 配置中的 module 和 moduleResolution 选项。
Q: 如何减少打包体积?
A: t-comm 完全支持 tree-shaking。请使用按需引入的方式,而不是引入整个库:
// 推荐
import { getMonthDay } from 't-comm';
// 不推荐
import * as tComm from 't-comm';Q: 小程序环境如何使用?
A: 大部分工具函数在 Web 和小程序环境通用。如果是小程序专用工具(如 mp 目录下的函数),会自动检测环境并调用相应 API。
Q: 如何获取完整的 API 文档?
A: 访问详细文档网站查看所有模块的完整 API 说明和使用示例。
Q: 版本更新策略是什么?
A: 项目遵循语义化版本规范(Semantic Versioning)。变更日志会在每次发布时自动生成,记录新增功能、Bug 修复和破坏性变更。
Q: 是否支持 TypeScript?
A: 完全支持。内置完整的类型定义文件(.d.ts),提供良好的代码补全和类型检查。
Q: 如何参与项目贡献?
A: 欢迎提交 Issue 和 Pull Request。请确保代码通过测试并遵循项目的代码规范。
Q: 项目采用什么构建工具?
A: 使用 Rollup 进行构建,生成 CommonJS 和 ES Module 两种格式,确保在各种场景下都能正常使用。
Q: 如何处理跨平台兼容性问题?
A: t-comm 内置了环境检测和平台适配层,会自动根据运行环境选择合适的 API 实现。开发者无需手动处理兼容性。
