← 返回文章列表
李奕锦的个人网站所属专题:AI 外骨骼

214万 Token、2小时交付:一次真实 Cursor Composer 2.5 Fast 复盘

更新于 2026-06-03年份:2026字数:4,200阅读时长:12 分钟

当你以为"加个 xxxM 页面"只是多一条路由时,成熟项目里的祖传 Layout、SSR 水合与四国 i18n 会立刻把简单需求变成全链路排雷。本文用 214.1 万 Token、约 2 小时墙钟时间的真实结对记录,拆解 Cursor Composer 2.5 Fast 在代码走读、国际化、响应式与导航消失案中的边界,以及人类工程师何时必须踩下回滚刹车。

TL;DR · 核心结论

  • 1214 万 Token 里九成是"读库 + 排障 + 对齐",不是多写了几百行 Vue;算力换的是上下文与走查带宽。
  • 2先拜码头(导航 / 双端 Layout / i18n 规范)再写页面,能把"简单需求"里的祖传依赖一次性摊开。
  • 3导航消失案说明:AI 擅长给方案,人类必须守住边界——敢回滚、敢用页面级特例,才是真交付。

AI Coding · Cursor Composer 卸防复盘

214.1万
Token
约2小时
107万/h
xxxM
四国落地页

你可能也在各类技术社区里看过无数形如"AI 编程让我效率翻倍"的爽文,但作为一个在一线摸爬滚打多年的前端,我过去对这种言论大都持保留态度。直到最近,在维护公司某全球旅游站项目时,我接到了一个看似平平无奇的需求:在导航栏"Download"后新增一个"xxxM"页面入口,完成首屏落地页开发,同时支持四国语言与移动端自适应。

"不就是加个路由、画个静态页吗?"如果只看产品文档,大部分人脑海里闪过的第一反应都是这句。但真正做过成熟项目重构或维护的人都知道,越是"加个页面"的简单需求,里面暗藏的"祖传代码屎山"和"全链路依赖"就越多。这一次,我决定把整个开发上下文彻底移交给 Cursor Composer 2.5 Fast,和它进行了一场长达 2 小时的深度结对编程。在这场拧螺丝的战斗中,我们疯狂消耗了 214.1 万 Token。今天不想吹嘘 AI 有多神,只想卸下防备,跟你聊聊这次真实交付中的阵痛、决策,以及 AI 在工程落地时的真正边界。

Token 账单

账单里的秘密:214万 Token 到底花在哪了?

开工前,我们先来看一组好玩的数据。这是我记录的"AI 协作战报":

AI 协作战报

Cursor 额度变化 · 约 2 小时结对

坐下前 / 起身后 / 净消耗

核心指标坐下开工前抬头起身后净增量 / 消耗
累计 Token 数4470.2 万4684.3 万214.1 万
官方高额额度占比21.2%22.9%+1.7%
墙钟时间 (Wall Time)约 2 小时
本次会话净消耗约 214.1 万 tokens · 平均 **107 万/h**

平均每小时吞掉 107 万 Token。看到这个数字,你的第一反应可能是:"你这是让 AI 写了一部四大名著吗?"当然不是。作为前端,我们心里都清楚,写代码从来不是"啪啪啪"盲打键盘的过程。

或许有人会心疼算力:为了一个静态页烧掉两百万 Token,真的划算吗?算一笔账就清楚了。在如今的商业开发里,这点算力成本甚至换不来一线城市程序员 15 分钟的工时费。但 AI 用这 214 万 Token,帮我把全站代码盲区排查、上下文切换、以及无休止的"肉眼 Bug 走查"带宽拉到了极致。这笔买卖,性价比高得惊人。

拜码头

第一阶段:别急着敲键盘,先带 AI"拜码头"

很多人用 AI 效率低,往往是因为第一步就错了——直接丢一句:"帮我写个 xxxM 页面。"相信我,在成熟的商业项目里,这样做得到的代码 99% 会因为不符合项目规范而被你直接 git checkout .

我们拿到的这个老项目技术栈是 Nuxt 3 + Vue 3 + Vue I18n + PostCSS (pxtorem),同时有着非常严格的 PC/Mobile 双端自适应布局。所以,我坐下后的前 20 分钟,一口雷达都没有放,而是拉着 Composer 先去"拜码头"(代码库走读):

1

走读 1:摸清导航的底细

锁定 BaseHeader.vue,让 AI 分析现有的 navList 数据结构,搞清楚它是怎么判断高亮(active 状态)和路由跳转(toPage)的。

2

走读 2:拆解双端布局

翻开 PCLayoutMobileLayout,看一看到底是纯 CSS 媒体查询,还是走的总线 UA 判断?Header 组件在双端是怎么复用的?

3

走读 3:盘点国际化资粮

检查 locales/ 下的 en/zh/ja/ko.json,摸清他们现有的 Key 命名习惯。是扁平化的 "header_title",还是层级嵌套的 "header": { "title": "..." }

这一阶段,我们的代码产出是 0。但事实证明,磨刀不误砍柴工,这帮我们规避了后续至少 3 次以上的方向性返工。

骨架与 i18n

第二与第三阶段:骨架搭建与让人头疼的国际化

当 Cursor 摸清了项目的脾气,真正的开发就像顺水推舟了。

1. 骨架与 SEO 灌水

我们新建了 pages/xxxm/index.vue。Nuxt 3 的 useHead() 配置极其繁琐,各种 title、description 还有 og:image 等 Meta 标签。交给 Cursor 吧,它熟练得像个干了十年的全栈,按照项目既有的 FAQ 页面依葫芦画瓢,一秒钟生成完毕。

接着是 Hero 首屏核心组件 components/xxxm/Hero.vue。这个页面包含 Badge、大标题、CTA 按钮、以及 Trustpilot 评价区。为了减少网络请求和资源管理的麻烦,我让 Cursor 把 Trustpilot 的图标直接切成了内联 SVG。干净利落。

2. 多语言无痛补齐

前端最痛苦的体力活是什么?多语言绝对排得进前三。开发完页面,你得去四个不同的 JSON 文件里硬编码对应的翻译。稍不留神漏掉一个 Key,线上就会给用户展示大写的 ERROR_KEY_NOT_FOUND

这一次,我把页面组件往 Composer 里一丢:"帮我把这个组件里所有的硬编码文案提取出来,同步写入 en、zh、ja、ko 的 JSON 文件里,注意保持原有的嵌套规范。"

中间有个小插曲:第一轮跑完,Cursor 漏掉了中英双端的部分字段,导致页面局部"开天窗"。要是以前,我得自己去比对四个大文件,而现在我只需要在终端截图或者复制报错提示给它,它能在 5 秒钟内定位到漏掉的那个逗号,并瞬间补齐。

响应式魔鬼

第四阶段:响应式适配,才是细节里的魔鬼

UI 工程师的勋章,大多是在适配移动端时被授予的。当我们在 PC 端看着完美的画面时,一拉小浏览器窗口,或者切到移动端视图,灾难往往就发生了。

1

翻车 1:大标题断行异常

现象

屏幕缩到 692px 左右时,主标题因为字数太长,撑爆了容器。

AI 的解法

抛弃了生硬的媒体查询换行,直接帮我改用 clamp(24px, 4vw, 48px) 的流式字体控制,让标题随着屏幕丝滑缩放。

2

翻车 2:CTA 按钮"叠罗汉"

现象

空间不够时,两个并排的按钮挤成了一坨。

AI 的解法

快速重构为 flex-wrap,并在移动端自动切换为上下纵向排列,顺便补上了优雅的 gap

3

翻车 3:Trustpilot 区域越界

现象

评价区的宽度在移动端显得过于臃肿。

AI 的解法

像素级致敬了项目中已有成功实践的 @media (max-width: 768px) 媒体查询方案。

导航消失案

第五阶段:惊心动魄的"导航消失案"与回滚抉择

如果说前四个阶段只是丝滑的"降维打击",那么第五阶段的故障排查,才让我真正感受到了结对编程的魅力。

在桌面端自适应测试全部通过后,我掏出真机进行最后的走查。一进入 /xxxm 页面,我的心凉了半截:移动端网页顶部的 Header 导航栏,竟然凭空消失了。 白字白底?样式遮挡?z-index 太低?如果按照传统的排查思路,我可能会在 Chrome DevTools 里不断勾选样式,折腾个十来分钟。

我把这个现象丢给了 Cursor。通过对全项目上下文的检索,它在 30 秒内给出了一个完全出乎我意料的推断:"这不是 Header 的样式问题。根源在于项目的 MobileLayout 路由分流逻辑。这个祖传的移动端模板内部压根就没有引入 BaseHeader 组件,它默认页面自己去处理导航!"

破案了。AI 紧接着给我出了两套方案:

方案 A(激进): 改造路由分流逻辑,强行让 xxxM 页面在移动端也挂载 PCLayout 的魔改版。

方案 B(稳健): 大面积重构移动端 Layout 的 DOM 结构,把 Header 统一塞进去。

坐在电脑前的我,看着这两个方案,陷入了沉思。这两个方案听上去都很诱人,都能解决问题,甚至能给项目带来所谓的"架构优化"。但是,我今天接到的需求只是加一个 xxxM 的活动页,而不是去重构全站的布局体系。动了 Layout,全站其他几十个活着的页面一旦哪个出了错,那就是通宵起步的线上事故。

于是,我做出了这次协作中最重要的一次决策:全部回滚,另辟蹊径。 我们果断调用 Git 撤销了对全局布局的大胆尝试。为了既不污染全局,又能彻底解决移动端导航缺失的问题,我指示 AI 采用了一种更精准的局部解耦方案:

<!-- 最终的局部保命解法方案 -->
<template>
  <div class="xxxm-page-wrapper">
    <BaseHeader :current-page="'xxxM'" />
    <main>
      <XxxMHero />
    </main>
    <ClientOnly>
      <MobileNavPatch v-if="isMobile" />
    </ClientOnly>
  </div>
</template>

这种做法虽然在架构层面上有些"特殊处理",但它把变更风险完美控制在了当前页面内部,彻底杜绝了 SSR 水合(Hydration)不一致导致的线上白屏隐患。

人机边界

深度思考:AI 时代的结对编程,我们该如何自处?

复盘这忙碌的 2 个小时,我深刻体会到,AI 并没有抢走我的饭碗,它更像是把原本套在我手脚上的沙袋摘掉了。

那些可以闭眼交给 AI 的事

  • 代码检索与定位"帮我找出所有引用了 active-menu 的地方",速度堪称降维打击。
  • 枯燥的样板代码I18n 翻译对齐、Nuxt SEO 灌水、枯燥的 SCSS 嵌套,AI 永远不会疲劳,也不会敲错单词。
  • 第一轮 Bug 诊断当控制台抛出一段冗长莫名的 SSR 报错时,AI 往往能一针见血地指出是哪个生命周期钩子里用了 window 对象。

人类工程师必须死守的防线

  • 确立需求的边界明白"什么该改,什么不该动"。AI 永远有重构全世界的冲动,但你需要对生产环境保持敬畏。
  • 踩死架构的刹车当 AI 给出好、中、差三种方案时,你要有能力评估技术债的利弊,并果断在合适的时候选择"回滚"。
  • 交付的终极验收真机上的丝滑程度、弱网环境下的体验、真正的 SEO 爬虫抓取预期,这些直觉性的东西,依然掌握在人的手里。
写在最后

写在最后

这次的交付谈不上惊天动地,甚至可以说是前端日常中最琐碎、最接地气的一种需求。但当我在 2 小时内关闭所有 Tab、提交 Pull Request 的那一刻,我看着空空如也的待办列表,由衷地感到一种久违的轻松。

AI 真正压缩的,不是我们写核心代码的时间,而是那些我们在查阅文档、核对字段、切换上下文、以及在代码堆里玩"捉迷藏"时浪费掉的生命。不要把 AI 当成一个自动写代码的机器,把它当成一个随时待命、不知疲倦、熟读你项目所有源码的高级副驾。 握好你的方向盘,接下来,把枯燥的直线加速,都交给它吧。

阅读时长:12 分钟


文档信息

版权声明:自由转载-非商用-非衍生-保持署名(CC BY-NC-ND 3.0)

原文链接:https://yijinlee.com/share-future/article-45

作者:李奕锦

商业用途或修改衍生请联系授权。


李奕锦
李奕锦

全栈工程师,业余马拉松选手。

TL;DR

  • 214 万 Token 里九成是"读库 + 排障 + 对齐",不是多写了几百行 Vue;算力换的是上下文与走查带宽。
  • 先拜码头(导航 / 双端 Layout / i18n 规范)再写页面,能把"简单需求"里的祖传依赖一次性摊开。
  • 导航消失案说明:AI 擅长给方案,人类必须守住边界——敢回滚、敢用页面级特例,才是真交付。
Tags:AI CodingCursorComposer 2.5 FastNuxt 3Vue 3Vue I18nSSR结对编程xxxM

该专题下的阅读路径

AI Coding架构排障

常见问题 FAQ

Q1. 214 万 Token 主要花在哪,真的值得吗?
真正写入 template 与 style 的通常不到 10%,其余是代码库走读、SSR 水合排查、四语言 JSON 对齐与架构方案推演。在商业开发里,这点算力成本往往换不来 15 分钟一线城市工时,但能把上下文切换与肉眼走查带宽拉满。
Q2. 为什么第一步不是让 AI 直接写 xxxM 页面?
成熟项目有严格的 navList 结构、双端 Layout 分流与 i18n Key 嵌套规范。先让 AI 分析 BaseHeader、PCLayout/MobileLayout 与 locales,能规避至少 3 次以上的方向性返工。
Q3. 移动端导航消失,为什么不是 Header 样式问题?
根因常在 MobileLayout 路由分流:祖传移动端模板可能未引入 BaseHeader,默认由页面自管导航。全站改 Layout 风险高,更稳的是页面级 definePageMeta({ layout: false }) 并按需挂载 Header。
Q4. AI 给出重构方案时,工程师该怎么决策?
对照需求边界:今日任务是活动页交付,不是全站布局重构。不合适的大方案应在秒级回滚,改用局部解耦把变更风险锁在单页内,并由人做真机与弱网终验。

发表评论

分享你的想法和反馈

支持 Markdown 格式

0/5000