一个实用的工具类库,提供丰富的工具函数,帮助开发者提高开发效率。
- 🚀 开箱即用:提供丰富的工具函数,无需重复造轮子
- 🛠️ 类型安全:使用 TypeScript 开发,提供完整的类型定义
- 📦 独立函数导入:支持单个函数导入,极致的按需加载,减小打包体积
- 🎯 多格式支持:提供 ESM、CommonJS、UMD 多种格式,适配不同环境
- 🔧 可扩展:支持自定义配置,满足不同场景需求
- 📝 文档完善:提供详细的 API 文档和使用示例
- 🔄 持续更新:定期更新,保持代码质量
- ⚡ 零依赖:除必要的运行时依赖外,无额外依赖
# 使用 npm npm install @winner-fed/cloud-utils # 使用 yarn yarn add @winner-fed/cloud-utils # 使用 pnpm pnpm add @winner-fed/cloud-utils
import { formatDate, accAdd, isEmpty } from '@winner-fed/cloud-utils'; // 使用日期格式化 const formattedDate = formatDate(new Date(), 'YYYY-MM-DD'); // 使用精确加法 const sum = accAdd(0.1, 0.2); // 0.3 // 判断是否为空 const empty = isEmpty(null); // true
使用主入口 @winner-fed/cloud-utils 会解析整包(含 idCard、decimal.js 等),打包时会把相关依赖(如 idcard)一并打进产物。若只需少量函数(例如只要 formatDate),请用子路径按需引入,避免打入未使用的依赖:
对于只需要少数几个函数的场景,可以直接导入独立函数,减少打包体积:
// ESM 格式 - 自动选择合适的文件 import { accAdd } from '@winner-fed/cloud-utils/accAdd'; import { formatDate } from '@winner-fed/cloud-utils/formatDate'; import { isEmpty } from '@winner-fed/cloud-utils/isEmpty'; // CommonJS 格式 const { accAdd } = require('@winner-fed/cloud-utils/accAdd'); const { formatDate } = require('@winner-fed/cloud-utils/formatDate');
如果需要明确指定导入格式:
// 明确使用 ESM 格式 import { accAdd } from '@winner-fed/cloud-utils/dist/esm/accAdd.js'; // 明确使用 CommonJS 格式 const { accAdd } = require('@winner-fed/cloud-utils/dist/cjs/accAdd.js');
import * as utils from '@winner-fed/cloud-utils'; // 使用工具函数 const result = utils.formatDate(new Date(), 'YYYY-MM-DD'); const sum = utils.accAdd(0.1, 0.2);
本包提供了多种格式以适应不同的使用场景:
@winner-fed/cloud-utils/
├── dist/
│ ├── index.js # ESM 主入口
│ ├── index.cjs # CommonJS 主入口
│ ├── index.d.ts # TypeScript 声明文件
│ ├── *.d.ts # 独立函数的声明文件
│ ├── esm/ # ESM 格式的独立函数
│ │ ├── accAdd.js
│ │ ├── formatDate.js
│ │ └── ...
│ ├── cjs/ # CommonJS 格式的独立函数
│ │ ├── accAdd.js
│ │ ├── formatDate.js
│ │ └── ...
│ └── umd/ # UMD 格式(浏览器直接使用)
│ └── index.js
<!-- 通过 CDN 引入 UMD 格式 --> <script src="https://unpkg.com/@winner-fed/cloud-utils/dist/umd/index.js"></script> <script> // 全局变量 cloudUtils const result = cloudUtils.formatDate(new Date(), 'YYYY-MM-DD'); const sum = cloudUtils.accAdd(0.1, 0.2); </script>
不同的导入方式适用于不同的使用场景:
| 导入方式 | 包体积 | 适用场景 | 示例 |
|---|---|---|---|
| 完整引入 | 整包较大(含 idcard、decimal.js 等依赖) | 使用多个函数时 | import { a, b, c } from '@winner-fed/cloud-utils' |
| 独立函数导入 | ~1-3KB/函数 | 只使用少数函数时推荐 | import { accAdd } from '@winner-fed/cloud-utils/accAdd' |
| 直接路径导入 | ~1-3KB/函数 | 明确指定格式时 | import { accAdd } from '@winner-fed/cloud-utils/dist/esm/accAdd.js' |
- 🚀 使用 3 个以上函数且可接受整包体积:可用完整引入(会包含 idcard、decimal.js 等依赖)
- ⚡ 只使用 1-2 个函数:推荐独立函数导入,避免打入未用依赖
- 🎯 对包体积敏感:一律用独立函数导入
- 🛠️ 需要特定格式:使用直接路径导入
formatDate: 日期格式化formatDateToTimeStamp: 日期转时间戳getMonthOfDay: 获取月份天数getYearOfDay: 获取年份天数isLeapYear: 判断是否为闰年
accAdd: 精确加法preZeroFill: 数字前补零toNonExponential: 数字转非科学计数法formatNumber: 数字格式化
is: 类型判断工具集isEmpty: 判断是否为空isEmptyObject: 判断是否为空对象isValidDate: 判断是否为有效日期isDigit: 判断是否为数字isLetters: 判断是否为字母isHTML: 判断是否为 HTML 字符串
trim: 去除空格toZhCN: 转中文数字numberToChinese: 数字转中文toCamelCaseVar: 转驼峰变量toUnderlineVar: 转下划线变量transferHumpUnderline: 驼峰下划线互转
addClass: 添加类名removeClass: 移除类名scrollToTop: 滚动到顶部getScrollPos: 获取滚动位置insertAtCaret: 在光标处插入内容getPixelRatio: 获取设备像素比
deepClone: 深拷贝deepMapKeys: 深度映射键名promisify: Promise 化timeTaken: 计算执行时间anagrams: 生成字符串的所有排列组合generateGUID: 生成唯一标识符combineURLs: URL 组合equals: 深度比较两个值是否相等
merge: 对象合并only: 对象过滤size: 获取对象大小dig: 深度获取对象属性objectToPairs: 对象转键值对数组objectFromPairs: 键值对数组转对象mapKeys: 映射对象键名mapValues: 映射对象值
photoCompress: 图片压缩exportXls: 导出 ExcelprettyBytes: 格式化文件大小dynamicLoadScript: 动态加载脚本
getDevice: 获取设备信息isMobile: 判断是否为移动设备isMobileStrict: 严格判断是否为移动设备isMobileLoose: 宽松判断是否为移动设备isPhoneX: 判断是否为 iPhone XisLightOS: 判断是否为轻量级操作系统
isValidEmail: 验证邮箱isValidPassword: 验证密码isValidTelephone: 验证电话号码isValidChineseName: 验证中文姓名isValidEnglishName: 验证英文姓名isValidBankNo: 验证银行卡号isValidIPV4: 验证 IPv4 地址isValidIPV6: 验证 IPv6 地址isValidURI: 验证 URIisValidBase64Format: 验证 Base64 格式isValidMD5: 验证 MD5 格式isValidSemverVersion: 验证语义化版本号isValidSubnetMask: 验证子网掩码isValidTestScores: 验证考试成绩isValidZipcode: 验证邮政编码isValidWechatID: 验证微信号isValidQQ: 验证 QQ 号isValidPassport: 验证护照号isValidLicenseNo: 验证车牌号isValidNewEnergyLicenseNo: 验证新能源车牌号isValidUnifiedSocialCreditCode: 验证统一社会信用代码isValidAShareCode: 验证 A 股代码
urlJoin: URL 拼接getURLParameters: 获取 URL 参数getLocationSearchParam: 获取 URL 搜索参数getLocationHrefParam: 获取 URL 哈希参数getUrlNames: 获取 URL 路径名
cookie: Cookie 操作encrypt: 加密工具getRandomInt: 获取随机整数handleEmoji: 处理表情符号isEmoji: 判断是否为表情符号isSpecialChar: 判断是否为特殊字符rgbToHex: RGB 转十六进制setDocumentTitle: 设置文档标题
# 安装依赖 pnpm install # 开发模式 pnpm dev # 构建 pnpm build # 测试 pnpm test # 文档开发 pnpm docs:dev # 文档构建 pnpm docs:build
欢迎提交 Issue 和 Pull Request。