migration guide,迁移指南,这词我认得。但我把那个页面打开的时候,三屏英文,满眼 legacy、depracated、breaking change,我还是直接换了个方式——整个丢给 AI。
背景交代一下。我们后台用的那个组件库,3.x 的版本,运维那边扫描扫出来说有漏洞,要升到 5.x。我拿到的时候是上个月月底,周五下午,本来以为下班前能弄完。
我把 migration guide 的正文复制下来贴给 AI,让它读完给我列一份要改的清单。它列了 14 条,从 import 路径到几个 API 改名都有。我又问了句"我们代码里哪些地方要用到这些",顺手把 src 目录的结构口述了一遍,贴了几个主要文件给它。
它给的东西比我预期好。三个我压根没想到的地方都点出来了:某个 hook 的返回值结构变了,我们有个组件里做了解构,得一起改;全局注册那里要加个东西;还有 import 路径,它建议我写个 codemod 批量处理,别手改。
codemod,第一次见。我直译成"代码模组",感觉像硬件。查了下大概是批量改代码的小脚本,也可能是"代码修改器"?算了反正是这个意思。我最后还是手改了,一共七个文件,能忍。
翻车的地方在后面。改到某个配置项,它说 v5 里要显式加上 interactive: false 才能关掉那个交互,我信了,加上了,跑起来一点报错没有,但那个行为就是关不掉,点一下还是会弹出来。我以为是缓存,清了;以为打包没生效,重打了三遍;还去搜了半天,一个结果都没有。我当时还在想,是不是版本太新了没人踩过这个坑。
后来我去啃原文,翻 release notes 里那一节,从头到尾也没有 interactive 这个选项。它是把旁边另一个选项的名字改了俩字母拼出来的,看着很像,但根本不存在。
那天下午就没了。
也不算全白搭,重打三遍包,顺手把 webpack 缓存那块搞明白了一点,这个就不展开了。
AI 这活干的确实比我好,那份 guide 我估计得啃到半夜,它十分钟给我一份能用的清单。但它编东西的时候一点不犹豫,跟真的一样,也不带个问号。我不怪它,是我自己该对照的地方没对照。关键处还得回去啃原文,这话我听人说过很多遍,现在是真信了。
今日单词:codemod,批量改代码的脚本,估计还得再查三次。