SuperAPI AI 工具集

shadcn-errors-cli-sync-mismatch

前端与建站

查看项目

更新于 10-15 22:18

技能介绍

用途:解决重新运行 shadcn add <component> 时覆盖 components/ui/ 中被本地编辑过的文件这一同步错配问题。shadcn 把组件源码复制进仓库后,该文件即属于你的代码,CLI 不记录你是否改过。再次执行 shadcn add <name> --overwrite(或以 -y 接受提示)会用当前注册表版本逐字节替换文件,本地修改丢失且 CLI 无撤销,只能靠 git 恢复。components.json 不记录组件版本,没有 components.lock.json 或 installedVersion,磁盘文件内容才是唯一版本依据。

主要能力:提供 diff 优先的工作流与三种解决策略。先用 --dry-run(只打印计划、不写入)确认涉及文件,再用 --diff 查看内容差异;注意 diff 是 add 的标志,不存在 shadcn diff 子命令,也没有 shadcn update 子命令。策略一 vendor:每个组件只 add 一次,之后自由编辑、不再重跑,代价是失去上游修复;策略二 diff-merge(推荐默认):提交本地工作、看 diff,差异小则 --overwrite 后重加自定义,重叠则手工三方合并;策略三 fork:把文件复制到其他路径维护,原文件仅作上游参考。另推荐把自定义变体放入 *-extensions.tsx 同级文件,绝不内联到 components/ui/<name>.tsx,从而让 overwrite 安全。

使用方式:git 状态须干净或先提交,在特性分支操作;若 --diff 显示上游确有需要的修复才更新,无法说出上游改了什么就还不该更新。migrate icons、migrate radix、migrate rtl 会重写所有组件文件,运行前先提交。

限制:资料未提供具体组件版本号、价格或效果保证;各命令行为以官方文档为准。