SuperAPI AI 工具集

migrate

通用与其它

查看项目

更新于 10-15 22:09

技能介绍

用途:引导用户把 lodash 代码迁移到 es-toolkit,并理解 es-toolkit(strict)与 es-toolkit/compat 两种 API 的差异,内容以实际源码为准。

主要能力:从输入中识别所使用的 lodash 函数及导入方式;在用户项目所安装的包中验证函数是否可用;判断迁移路径(两者行为一致用 strict、行为不同则说明差异由用户决定、仅 compat 有则用 compat、完全没有则保留 lodash 或改用现代 JS);为每个函数给出可用性、文档链接、迁移前后代码示例、源码中发现的行为差异、特性对比表以及“何时用哪个”的场景建议;输出合并后的导入改写,并提示大规模迁移的自动化方式(打包器 alias、ESLint no-restricted-imports、jscodeshift 等 codemod);提醒只有实测或读取当前基准数据后才引用具体体积或性能数字。

使用方式:验证函数可用性时需在依赖 es-toolkit 的包目录下运行,monorepo 中通常是工作区包而非仓库根目录;使用 Yarn Plug'n'Play 时用 yarn node 代替 node。可用 node --input-type=module 内联脚本检查各入口导出,用 node -e "console.log(require.resolve('es-toolkit/package.json'))" 定位包元数据并阅读 dist/ 下声明获取签名与 JSDoc;若当前项目就是 es-toolkit 源码仓库,则直接查看 src/{category}/{fn}.ts、src/compat/{category}/{fn}.ts 及其测试。

适用场景:单个或批量 lodash 函数迁移、导入替换、以及为减小打包体积而评估切换到 es-toolkit 的策略。

限制:strict 与 compat 的差异只能通过检查用户项目实际安装的版本来确认,不应假设可访问 es-toolkit 仓库或同级文档目录;es-toolkit/types 仅为类型,无法通过运行时导入检查;compat 在定义范围内追求与 lodash 测试兼容,范围外行为(如隐式类型转换、原型修改)见 docs/compatibility.md;不再依赖现代 JS 可替代的函数(如 get、set、has 依赖可选链 ?.、Object.hasOwn() 等),故仅在 compat 中提供;若不确定某文档页面存在,应省略链接而非猜测。