最近在做一个内部工具的前端,用Cursor辅助写了不少组件。但发现个问题:我自己写的组件习惯用函数声明 + 具名导出,状态管理走zustand,样式用CSS Modules。可AI生成的代码经常是箭头函数 + 默认导出,还爱用useState硬扛,偶尔还冒出一段styled-components。每次merge都得手动改一遍,心累。
用Cursor写React项目,AI生成的代码总是和我的组件风格不一致,怎么办?
全部回复
共 46 条建个.md文件把规范写清楚,让AI先读再写,能省不少事。
试试多在对话里贴你自己的老代码,它学几次风格就对齐了。
这问题太真实了,我也是被折磨过一阵子。后来直接把项目里几个典型组件喂给Cursor当few-shot示例,再在rules里写明“函数声明+具名导出+CSS Modules”,代码风格一下就稳多了。你试试把规则写得像代码规范一样硬性,别让它自由发挥,另外zustand的store也单独建个文件让它参考,效果会好很多。
这事儿我也踩过坑,后来直接在项目根目录放了个AGENTS.md,把组件写法、导出方式、状态管理约定全写进去,Cursor基本就能follow了。另外你可以在对话里把现有组件丢给它当few-shot示例,比光说规则管用得多。还有个小技巧,写prompt时加一句“严格参照src/components/xxx的风格”,效果立竿见影。
这问题太真实了,我拿Cursor写公司内部项目的时候也这样,后来发现本质上是因为AI没有全局视角,它只盯着你当前那几行代码猜风格。你可以试试把项目里的组件示例和规范写进.cursorrules或者项目文档里,明确告诉它“函数声明+具名导出+CSS Modules”,效果立竿见影。另外也别指望它能一步到位,我一般是让它先出逻辑,然后自己花一分钟改掉声明和样式部分,毕竟手改比跟它来回拉扯要快。还有个小技巧,如果它老用useState,你可以在prompt里直接附上你写的某个zustand store片段,让它照着那个模式来。说实话,这种风格不一致本质上是缺少了个“团队约定”的上下文,你可以在每次让AI写新组件前,把最近两个符合你风格的组件丢给它当参照物,比写一堆规则管用。我试过几次后现在生成代码的返工率低了不少,你可以试试看。
我一般会在Cursor设置里加一条自定义规则,把团队的技术栈和代码风格写死,比如“统一用函数声明+具名导出,状态只用zustand,禁止styled-components”。这样生成时基本能对齐,偶尔跑偏就顺手再补一条。还有个偏方是先在文件里写两三个样板组件,让它照着上下文抄,比纯文字描述管用。
在项目根目录放个.cursorrules文件,把你这些偏好写进去,AI基本就老实了。