跳到主要内容

上午安利 AI,下午被它坑

小盐啃文档
小盐啃文档

· 阅读约 3 分钟

上午我还在跟小袁安利 AI 编程,下午就被同一个 AI 坑了一手。也不算坑吧,是我自己没把项目情况说清楚,但当时第一反应确实是"AI 也不行啊",后来才发现是我自己的问题。

事情是这样的。我们有个老后台,叫海豚(名字挺土的,一直没改),vue 2 的底子,vue-cli 还是 3 时代的老配置。上周接了个需求,商品列表的导出按钮要加二次确认弹窗。我想着这种活儿直接让 AI 写就完了,就把需求用中文描述贴在对话框里。它啪地给了一长段,里面有 optional chaining(就是这个 ?.),还有一段 Promise.all 的用法,看着挺 modern 的。我复制进去,npm run dev,直接白屏。

报错信息我记得很清楚,很长,我挑关键的部分啃:

Module parse failed: Unexpected token
Support for the experimental syntax 'optionalChaining' isn't currently enabled

Unexpected token 我认识,语法层面的东西,之前在文章里还记过这个词(白记了,又忘了)。关键是第二段。查了下,experimental 是"实验性的",syntax 是"语法"。拼起来就是"这个实验性语法没有被启用"。我当时想的是:哦,babel 插件没配呗,那我去配上就行了。然后我就开始查 babel 怎么配置。查了半小时,越查越乱。中间还搞偏过一次,把 optionalChaining 跟 React 的什么特性记混了,差点往项目里装一个完全无关的东西(装的那个我名字现在都想不起来)。

小袁正好接水路过,瞟了一眼我的屏幕,说:"你项目里 babel 配置是不是没加这个?"

我一看,还真是。这个老项目为了稳,babel preset 锁得很死,新语法一概不认。我回头看了看我给 AI 的提问——就写了"给导出按钮加个确认弹窗",一丁点项目环境的信息都没给。它当然不知道。这能怪它吗,不能。

我嘴上还嘴硬了一句"这能怪我吗,我哪记得住 babel 版本",但心里知道,这事 AI 不背锅。它是个聪明的工具,但你要是没告诉它前提,它就只会拿自己脑子里见过的东西来回答你。这有点像跟人对接需求,你不说上下文,对方再能也白搭。

后来我把项目版本、vue 版本、babel 配置一股脑贴了过去。它秒回:"这个版本识别不了 ?.,改成 && 短路写法就行。" 大概意思是这个意思。改完,跑通了。

小袁临走时丢了一句:"你这不是安利 AI,是 AI 安利了你。" 我问什么意思,他说:"你看,你被它带着学了半小时 babel,这不比你自己写一遍学的还多?" 想想也是。

今日单词:optionalChaining——可选的链式调用(?这翻译对吗)。读音大概是"欧普深那儿",反正下次见到我估计还是念不对。

小盐啃文档
小盐啃文档

英语不好,硬啃英文文档。今日单词又忘了,明天接着查。

查看主页 →