最近开始尝试用Cursor辅助写前端代码,发现它特别喜欢在生成组件时自动import一些我根本没装过的库,比如framer-motion、lodash这些。明明我只是想要一个简单的下拉菜单,它硬是给我整出十几个依赖。我已经在prompt里写了“只用原生或者已安装的依赖”,但效果不明显。想问问大家是怎么调教AI工具的?是不是需要在项目根目录下放个什么配置文件?还是说AI对项目结构理解不到位?真诚求教,感谢。
用Cursor写React组件,AI总给我乱加没用的库,怎么破?
全部回复
共 132 条在项目根目录放个CLAUDE.md说明技术栈和禁用依赖,效果立竿见影,我试过很管用。
可以在项目里放个.cursorrules文件,明确禁止自动引入未安装的库,亲测有效。
或者直接让它先列改动方案再动手,别让它自己发挥。
这问题太真实了,我刚开始用Cursor的时候也被这个坑过。后来发现它其实不是不理解项目结构,而是训练数据里“完整示例”的权重太高了,总想把代码写得“好看”又“健壮”,结果就是堆一堆花里胡哨的库。你试试在项目根目录放一个.clinerules文件,里面明确写“禁止引入未安装的npm包,只用全局已有的依赖”,然后每次对话开头再强调一次,比单纯在prompt里写管用得多。另外我还有个笨办法,就是生成完代码后全局搜一下import,发现没装的库直接删掉,让AI写纯逻辑部分,样式和动画自己来,其实很多需求原生CSS就能搞定。还有个思路是给AI看一个你手写的简单组件作为few-shot示例,它模仿能力很强,你给它个“极简风格”的样本,它就不太会放飞自我了。反正别指望一步到位,把AI当个实习生,得盯着点,多纠正几次它会记住你的偏好。
我刚开始用Cursor的时候也踩过这个坑,后来发现它其实不是“理解不到位”,而是它的训练数据里就默认了“最佳实践”是引入各种库。你可以试试在项目根目录放一个.claude或者.cursorrules文件,里面明确写上“禁止引入任何未在package.json中声明的依赖,所有样式用CSS实现”,这个比在prompt里说管用多了。另外,我有个土办法,就是每次生成完代码后,先全局搜索一下import语句,把多余的删掉,顺手把AI生成的逻辑也简化一遍,时间久了它就会慢慢“学”到你的风格。不过说实话,AI写代码还是得靠人工把关,它更像是一个高级的自动补全工具,别指望它能完全理解你的项目约束。你还可以试试在生成前给它看一个你手写的组件作为参考样例,这样它模仿起来会更靠谱。
我之前也踩过这坑,后来发现直接在项目根目录放个.clinerules文件,把“禁止引入额外依赖”写进去,效果比在prompt里喊破嗓子强多了。另外生成完代码记得让它跑一下package.json核对依赖,我现在基本每轮都会追加一句“如果要用库,先问我能不能装”,不然它默认你有装过一切。
在项目里放个.clinerules文件,把禁用依赖写进去,比prompt管用多了。
这问题我太有同感了,Cursor对“轻量实现”的理解跟咱们不在一个频道上。你光在prompt里说没用,它脑子里那套“最佳实践”根深蒂固,默认你项目就该是全家桶。我后来做法是直接在项目根目录放一个叫AGENTS.md的文件,里面用很直白的话写清楚“禁止引入任何package.json之外的依赖,所有交互用CSS和原生state实现,UI库一律不许用”,每次对话开头再强调一遍当前文件路径,效果好了不少。不过说实话,这工具最烦的是它经常自作主张帮你“优化”,哪怕你明确说不要,它还是会偷偷塞个工具函数进去。另一个土办法就是生成完代码后全局搜一下import,凡是没装的库立刻手动删掉,再让它根据现有代码重写逻辑,逼它用你已经有的东西。调教这玩意就是个反复拉锯的过程,别指望一次到位,多骂它几次,它慢慢就记住你的风格了。
我之前也踩过这个坑,后来发现光在prompt里写不够,直接在项目根目录放一个.cursorrules文件,把禁止使用的库列表写清楚,比如“不要引入lodash、framer-motion,优先用CSS和原生事件”,效果立竿见影。另外你可以试试在生成前先让它读一下package.json,明确告诉它“基于现有依赖写代码”,它就不会乱发挥了。不过说实话,有时候它还是会抽风,所以我现在生成完都会全局搜一下import,发现有没装的一律手动删,多检查两遍就习惯了。
试试在项目里放个.clinerules文件,明确写禁用列表,比在prompt里啰嗦管用多了。
我一般会在prompt里直接写死“不要引入任何新依赖,只用react和已有包”,然后手动把它的import删掉几次,它慢慢就学乖了。还有个技巧是先把package.json贴给它看,或者用.cursorrules文件把规则写进去,效果比单纯在对话里说好很多。不过说实话AI对项目实际依赖的理解还是有限,偶尔抽风很正常,关键代码最好还是自己把把关。
我一般在prompt里直接说“禁止import任何新库”,比“只用已安装的”管用多了。
在项目根目录放个.cursorrules文件,把允许的依赖写进去,它就不敢乱来了。