Lzh on GitHub

从 v1 升级到 v2

重大变更

tailwind-merge 现在是一个可选的对等依赖项

在 v2 版本中,我们已将 tailwind-merge 设为一个可选的对等依赖项,以减小那些不需要 Tailwind CSS 冲突解决功能的用户所使用的捆绑包大小。

发生了什么变化?

  • tailwind-merge 不再与 tailwind-variants 捆绑在一起。
  • 需要冲突解决功能的用户必须单独安装它。
  • 不需要冲突解决功能的用户可以节省大约 ~3KB 的捆绑包大小。

迁移步骤

如果您使用默认配置 twMerge: true(启用冲突解决):

# npm
npm install tailwind-merge
 
# yarn
yarn add tailwind-merge
 
# pnpm
pnpm add tailwind-merge

如果您不需要冲突解决功能,请在您的配置中禁用它:

const button = tv(
  {
    base: "px-4 py-2 rounded",
    variants: {
      color: {
        primary: "bg-blue-500 text-white",
        secondary: "bg-gray-500 text-white",
      },
    },
  },
  {
    twMerge: false, // 禁用冲突解决
  },
);

性能改进

v2 版本还包括显著的性能优化:

  • 大多数操作速度提升 37-62%
  • 优化了对象创建和数组操作。
  • 减少了函数调用开销。
  • 更好的内存使用。

所有现有 API 保持不变,因此除了安装 tailwind-merge 之外,无需进行任何代码更改。