📦
单函数导入
支持按需导入单个函数、Hooks、常量和类型,极致的 Tree-Shaking,零冗余打包
不同于传统的工具库,Shared Library 从设计之初就采用单函数导出架构。每个函数都是独立的模块,打包工具可以精确地只打包你使用的代码,实现真正的零冗余。
// ✨ 每个函数都是独立模块
import { convertColor } from 'zcw-shared/functions/color/convertColor'
// 只会打包 convertColor 这一个函数,没有任何额外代码通过依赖注入设计,同一份代码可以在任何 JavaScript 环境运行。需要环境 API 的函数会要求你传入依赖对象,而不是内部直接引用全局变量。
// 浏览器环境
await compressToTargetSize(file, options, {
Image: window.Image,
File: window.File,
createObjectURL: window.URL.createObjectURL.bind(window.URL),
createElement: document.createElement.bind(document)
})
// Node.js 环境(使用 jsdom)
const dom = new JSDOM()
await compressToTargetSize(file, options, {
Image: dom.window.Image,
File: dom.window.File,
createObjectURL: dom.window.URL.createObjectURL.bind(dom.window.URL),
createElement: dom.window.document.createElement.bind(dom.window.document)
})100% TypeScript 编写,提供完整的类型定义和智能提示。不是简单的 .d.ts 文件,而是原生的类型推导和类型安全。
import type { ColorFormat } from 'zcw-shared/types/color'
import { convertColor } from 'zcw-shared/functions/color/convertColor'
// 完整的类型检查和自动补全
const color: string = convertColor('#ff0000', 'rgb')npm install zcw-shared
# 或
pnpm add zcw-shared