AI 写代码总踩坑?这份排错命令和实用技巧建议收藏
AI编程 常见问题汇总|附完整命令
随着大模型能力快速提升,越来越多开发者开始使用 AI 辅助编程工具,例如 ChatGPT、Claude、Cursor、GitHub Copilot、通义灵码、Codeium、Trae、Kiro 等。AI 编程确实能显著提升效率:写代码、补全函数、生成测试、解释报错、重构项目、编写文档都可以交给 AI 辅助完成。
但在实际使用过程中,很多人会遇到各种问题:AI 生成的代码跑不起来、依赖安装失败、上下文不够、项目结构混乱、命令执行报错、安全风险、代码质量不稳定、无法正确理解业务逻辑等。
本文整理了一份 AI 编程常见问题汇总,并附上大量常用完整命令,适合初学者、独立开发者、前端工程师、后端工程师、全栈开发者以及正在尝试使用 AI 开发项目的人参考。
一、AI 编程到底适合做什么?
AI 编程不是简单地“让 AI 代替程序员写代码”,更准确地说,它是一种 智能开发助手。它适合处理以下任务:
-
生成基础代码
- 生成页面组件
- 创建接口模板
- 编写工具函数
- 生成 CRUD 代码
-
解释已有代码
- 阅读陌生项目
- 分析函数逻辑
- 梳理调用链路
- 查找潜在问题
-
修复报错
- 分析终端错误
- 解释堆栈信息
- 给出修改建议
- 生成修复后的代码
-
重构项目
- 优化文件结构
- 拆分复杂函数
- 提取公共组件
- 改善命名规范
-
生成测试代码
- 单元测试
- 接口测试
- E2E 测试
- Mock 数据
-
编写文档
- README
- API 文档
- 注释说明
- 部署文档
但需要注意:AI 并不总是正确。它可能会生成不存在的 API、错误的依赖版本、不安全的代码,甚至给出看似合理但实际不可用的方案。因此,AI 编程最重要的能力不是“会提问”,而是 会验证、会调试、会审查代码。
二、AI 编程常见问题汇总
1. AI 生成的代码运行报错怎么办?
这是最常见的问题。很多人把需求发给 AI,AI 很快生成一大段代码,但复制到项目里后马上报错。
常见原因
- 依赖没有安装
- 框架版本不一致
- 文件路径错误
- 变量名不匹配
- TypeScript 类型错误
- AI 使用了不存在的 API
- 项目环境与 AI 假设的环境不同
解决思路
不要直接说“代码报错了”,而是把以下信息一起发给 AI:
1. 我使用的技术栈:
2. 框架版本:
3. 运行命令:
4. 完整报错信息:
5. 相关代码文件:
6. 我希望达到的效果:
推荐提问模板
我正在使用 Next.js 14 + TypeScript + Tailwind CSS 开发项目。
运行 npm run dev 后出现以下错误:
【粘贴完整错误信息】
相关代码如下:
【粘贴相关代码】
请你帮我分析:
1. 报错原因是什么?
2. 应该修改哪些文件?
3. 给我完整可替换代码。
4. 如果需要安装依赖,请给出完整命令。
2. AI 给的命令执行失败怎么办?
AI 经常会给出一些命令,但可能因为系统不同、包管理器不同或版本不同而失败。
常见包管理器命令
npm
npm install
npm install axios
npm install -D typescript
npm run dev
npm run build
npm run start
pnpm
pnpm install
pnpm add axios
pnpm add -D typescript
pnpm dev
pnpm build
pnpm start
yarn
yarn install
yarn add axios
yarn add -D typescript
yarn dev
yarn build
yarn start
如果依赖安装失败,可以尝试清理缓存
npm 清理缓存
npm cache clean --force
rm -rf node_modules package-lock.json
npm install
pnpm 清理缓存
pnpm store prune
rm -rf node_modules pnpm-lock.yaml
pnpm install
yarn 清理缓存
yarn cache clean
rm -rf node_modules yarn.lock
yarn install
Windows 删除 node_modules
如果你使用 Windows PowerShell:
Remove-Item -Recurse -Force node_modules
Remove-Item -Force package-lock.json
npm install
如果使用 CMD:
rmdir /s /q node_modules
del package-lock.json
npm install
3. AI 不理解我的项目结构怎么办?
很多 AI 工具无法一次性读取整个项目,或者读取上下文有限。如果项目较大,AI 可能只看到部分代码,因此容易给出错误建议。
解决方法
你可以先让 AI 阅读项目结构,而不是直接让它修改代码。
查看项目结构命令
macOS / Linux
find . -maxdepth 3 -type f
Windows PowerShell
Get-ChildItem -Recurse -File | Select-Object FullName
如果项目文件太多,可以排除依赖目录:
find . -maxdepth 4 -type f \
-not -path "./node_modules/*" \
-not -path "./.git/*" \
-not -path "./dist/*" \
-not -path "./build/*"
推荐提问模板
下面是我的项目结构,请你先理解项目,不要急着写代码。
【粘贴项目结构】
我的需求是:
【描述需求】
请你告诉我:
1. 应该修改哪些文件?
2. 每个文件的作用是什么?
3. 修改顺序是什么?
4. 可能有哪些风险?
4. AI 生成代码太散,项目越来越乱怎么办?
AI 编程一个常见问题是:需求一多,AI 会不断新增文件、复制代码、堆叠逻辑,最后项目越来越乱。
建议做法
在每次让 AI 写代码前,明确要求:
请优先复用已有代码,不要重复创建功能类似的文件。
如果需要新增文件,请说明原因。
请遵循当前项目目录结构。
请不要修改无关文件。
重构提示词
请帮我重构以下代码,要求:
1. 不改变现有功能。
2. 提高可读性和可维护性。
3. 拆分过长函数。
4. 提取重复逻辑。
5. 保持类型安全。
6. 给出完整修改后的代码。
7. 说明每处修改的原因。
代码如下:
【粘贴代码】
5. AI 经常生成错误 API 或过时写法怎么办?
AI 的知识可能滞后,尤其是一些更新较快的框架,例如 Next.js、React、Vue、Vite、Tailwind CSS、Prisma、LangChain 等。它可能使用旧版本写法。
解决方法
你需要告诉 AI 明确版本。
查看版本命令
node -v
npm -v
pnpm -v
yarn -v
查看项目依赖版本:
cat package.json
Windows PowerShell:
Get-Content package.json
查看某个包版本:
npm list next
npm list react
npm list vue
npm list vite
npm list typescript
pnpm:
pnpm list next
pnpm list react
pnpm list vue
pnpm list vite
pnpm list typescript
推荐提示词
请基于以下版本回答,不要使用旧版本写法:
Node.js: 20.x
Next.js: 14.x
React: 18.x
TypeScript: 5.x
Tailwind CSS: 3.x
请确认你给出的代码适配这些版本。
6. AI 写的代码能跑,但质量很差怎么办?
代码能跑不代表质量好。AI 生成代码常见问题包括:
- 变量命名随意
- 函数过长
- 缺少错误处理
- 类型定义粗糙
- 重复代码多
- 没有边界判断
- 没有测试
- 不符合团队规范
代码审查提示词
请你以资深工程师的角度审查以下代码,重点关注:
1. 是否存在 bug。
2. 是否存在安全风险。
3. 是否存在性能问题。
4. 是否有重复逻辑。
5. 命名是否清晰。
6. 类型定义是否合理。
7. 是否符合最佳实践。
8. 如何重构更好。
请先列出问题,再给出修改后的完整代码。
代码如下:
【粘贴代码】
ESLint 检查命令
npm run lint
如果项目没有配置 ESLint,可以安装:
npm install -D eslint
npx eslint --init
pnpm:
pnpm add -D eslint
pnpm eslint --init
Prettier 格式化命令
安装 Prettier:
npm install -D prettier
格式化项目:
npx prettier . --write
检查格式:
npx prettier . --check
7. AI 修复一个问题后又引入新问题怎么办?
这是 AI 编程中非常典型的问题。AI 修改代码时,如果没有完整上下文,可能会修好 A,弄坏 B。
解决方法
每次修改前,让 AI 先给出修改计划。
推荐流程
请不要直接修改代码。
请先阅读下面的代码和错误信息,然后输出修改方案。
要求:
1. 说明根本原因。
2. 列出需要修改的文件。
3. 说明每个文件改什么。
4. 评估是否会影响现有功能。
5. 等我确认后再输出完整代码。
使用 Git 保护代码
AI 编程一定要配合 Git,否则很容易改乱项目。
初始化 Git:
git init
查看状态:
git status
添加文件:
git add .
提交代码:
git commit -m "init project"
创建新分支:
git checkout -b feature/ai-update
查看修改差异:
git diff
恢复单个文件:
git checkout -- src/app/page.tsx
恢复所有未提交修改:
git checkout -- .
如果使用新版 Git,也可以:
git restore .
回退到上一次提交:
git reset --hard HEAD
8. AI 不会根据我的业务逻辑写代码怎么办?
AI 不懂你的真实业务,它只能根据你提供的信息推理。如果你描述得很模糊,它就会按通用逻辑生成代码。
不好的描述
帮我写一个用户系统。
这个需求太大,也太模糊。
更好的描述
请帮我写一个用户登录接口,要求:
1. 技术栈:Node.js + Express + TypeScript。
2. 数据库:PostgreSQL。
3. ORM:Prisma。
4. 登录方式:邮箱 + 密码。
5. 密码使用 bcrypt 校验。
6. 登录成功后返回 JWT。
7. JWT 有效期 7 天。
8. 错误情况包括:
- 邮箱不存在
- 密码错误
- 用户被禁用
9. 请给出:
- Prisma model
- 登录接口代码
- JWT 工具函数
- 环境变量示例
- 完整安装命令
安装命令示例
npm install express cors dotenv bcrypt jsonwebtoken
npm install -D typescript ts-node-dev @types/node @types/express @types/cors @types/bcrypt @types/jsonwebtoken
npm install prisma @prisma/client
npx prisma init
9. AI 生成的后端代码有安全风险怎么办?
AI 经常忽略安全细节。尤其是登录、支付、权限、文件上传、数据库查询等场景,需要格外谨慎。
常见安全问题
- 明文存储密码
- JWT 密钥写死在代码里
- 没有参数校验
- SQL 注入风险
- 文件上传不限制类型
- 接口没有权限控制
- 错误信息暴露数据库细节
- CORS 配置过宽
- 日志打印敏感信息
安全审查提示词
请从安全角度审查以下后端代码,重点检查:
1. 是否存在 SQL 注入。
2. 是否存在权限绕过。
3. 是否泄露敏感信息。
4. 是否正确处理密码。
5. 是否需要参数校验。
6. JWT 使用是否安全。
7. CORS 配置是否合理。
8. 文件上传是否有限制。
9. 请给出安全加固后的完整代码。
代码如下:
【粘贴代码】
常用安全依赖安装命令
npm install helmet express-rate-limit zod
示例:
npm install bcrypt jsonwebtoken dotenv helmet express-rate-limit zod
10. AI 写前端页面不好看怎么办?
AI 能生成页面,但默认审美不一定好,尤其是没有给出设计约束时,页面可能很普通。
提示词优化方式
你需要告诉 AI:
- 页面风格
- 配色方案
- 布局方式
- 目标用户
- 响应式要求
- 组件库
- 参考网站
- 交互动效
示例提示词
请帮我生成一个 SaaS 官网首页,要求:
1. 使用 React + TypeScript + Tailwind CSS。
2. 风格:现代、简洁、高级感。
3. 主色:蓝紫渐变。
4. 页面包括:
- 顶部导航
- Hero 区域
- 产品功能区
- 定价区
- 用户评价区
- FAQ 区
- 页脚
5. 要求响应式布局。
6. 不要使用外部图片。
7. 所有组件写在一个文件中,便于我复制测试。
Tailwind 安装命令
以 Vite + React 为例:
npm create vite@latest my-app -- --template react-ts
cd my-app
npm install
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
启动项目:
npm run dev
11. AI 生成的代码缺少测试怎么办?
AI 很容易只写功能,不写测试。对于复杂项目,测试非常重要。
让 AI 生成测试的提示词
请为以下代码编写单元测试,要求:
1. 使用 Vitest。
2. 覆盖正常情况。
3. 覆盖异常情况。
4. 覆盖边界情况。
5. 使用清晰的测试用例名称。
6. 给出安装命令和运行命令。
代码如下:
【粘贴代码】
Vitest 安装命令
npm install -D vitest
运行测试:
npx vitest
运行并查看覆盖率:
npm install -D @vitest/coverage-v8
npx vitest --coverage
Jest 安装命令
npm install -D jest ts-jest @types/jest
npx ts-jest config:init
npm test
12. AI 生成的数据库代码无法迁移怎么办?
数据库相关问题也很常见,尤其是 Prisma、TypeORM、Sequelize、Drizzle 等 ORM。
Prisma 常用命令
初始化 Prisma:
npx prisma init
生成客户端:
npx prisma generate
创建迁移:
npx prisma migrate dev --name init
查看数据库:
npx prisma studio
重置数据库:
npx prisma migrate reset
拉取已有数据库结构:
npx prisma db pull
同步 schema 到数据库:
npx prisma db push
常见问题
如果修改了 schema.prisma,但代码仍然报类型错误,可以执行:
npx prisma generate
如果迁移状态混乱,开发环境可以考虑重置:
npx prisma migrate reset
注意:该命令会清空开发数据库数据,生产环境不要随意执行。
13. AI 生成接口后,前后端联调失败怎么办?
前后端联调失败通常不是 AI 本身的问题,而是接口地址、请求方法、参数格式、跨域、鉴权等不一致。
检查清单
- 前端请求地址是否正确
- 后端服务是否启动
- 请求方法是否一致
- 请求体字段是否一致
- Content-Type 是否正确
- 是否需要 token
- 是否存在跨域问题
- 后端是否正确返回 JSON
curl 测试接口
GET 请求:
curl http://localhost:3000/api/users
POST 请求:
curl -X POST http://localhost:3000/api/login \
-H "Content-Type: application/json" \
-d '{"email":"test@example.com","password":"123456"}'
带 Token 请求:
curl http://localhost:3000/api/profile \
-H "Authorization: Bearer your_token_here"
推荐提示词
我的前端请求接口失败,请帮我排查。
前端请求代码:
【粘贴代码】
后端接口代码:
【粘贴代码】
浏览器 Network 信息:
【粘贴请求地址、状态码、响应内容】
请分析:
1. 是前端问题还是后端问题?
2. 参数是否匹配?
3. 是否存在跨域或鉴权问题?
4. 给出修复后的完整代码。
14. AI 生成项目后不知道怎么部署怎么办?
AI 可以生成项目,但部署环节往往需要你明确平台和环境。
常见部署方式
- 前端:Vercel、Netlify、Cloudflare Pages、Nginx
- Node 后端:Docker、PM2、Render、Railway、Fly.io
- 数据库:Supabase、Neon、PlanetScale、MongoDB Atlas
- 全栈:Vercel、Docker Compose、云服务器
构建命令
前端项目常见构建命令:
npm run build
预览构建结果:
npm run preview
Next.js 启动生产服务:
npm run build
npm run start
PM2 部署 Node 服务
安装 PM2:
npm install -g pm2
启动服务:
pm2 start dist/index.js --name my-api
查看进程:
pm2 list
查看日志:
pm2 logs my-api
重启服务:
pm2 restart my-api
停止服务:
pm2 stop my-api
设置开机自启:
pm2 startup
pm2 save
15. AI 编程时如何避免“越改越坏”?
这是使用 AI 编程最核心的问题。建议采用以下工作流:
推荐工作流
- 先提交当前可用版本
git add .
git commit -m "before ai changes"
- 创建新分支
git checkout -b feature/new-ai-task
- 让 AI 先分析,不直接写代码
请先分析需求和代码,不要直接修改。
- 小步修改
一次只让 AI 改一个功能,不要同时改登录、支付、UI、数据库。
- 每次修改后立即运行
npm run dev
npm run build
npm run lint
npm test
- 确认没问题后提交
git add .
git commit -m "feat: implement user login"
- 如果 AI 改坏了,立即回滚
git reset --hard HEAD
三、常用 AI 编程提示词合集
1. 需求分析提示词
你是一名资深全栈工程师。请根据我的需求进行技术方案设计。
需求:
【填写需求】
请输出:
1. 功能拆解。
2. 技术选型。
3. 数据结构设计。
4. 接口设计。
5. 前端页面结构。
6. 后端模块划分。
7. 开发步骤。
8. 风险点。
2. 代码生成提示词
请根据以下需求生成代码:
技术栈:
【填写技术栈】
需求说明:
【填写需求】
要求:
1. 给出完整代码。
2. 标明文件路径。
3. 不要省略关键逻辑。
4. 如果需要安装依赖,请给出完整命令。
5. 如果涉及环境变量,请提供 .env.example。
6. 代码需要考虑错误处理。
3. 报错排查提示词
请帮我排查以下报错。
运行命令:
【填写命令】
报错信息:
【粘贴完整报错】
相关代码:
【粘贴代码】
项目环境:
【填写 Node、框架、系统版本】
请输出:
1. 报错原因。
2. 排查步骤。
3. 修改方案。
4. 完整修复代码。
5. 需要执行的命令。
4. 代码重构提示词
请帮我重构以下代码。
目标:
1. 不改变现有功能。
2. 提升可读性。
3. 减少重复代码。
4. 增强类型安全。
5. 提升可测试性。
6. 保持原有对外接口不变。
请先说明重构思路,再给出完整代码。
代码如下:
【粘贴代码】
5. 代码审查提示词
请以高级工程师 Code Review 的标准审查以下代码。
重点关注:
1. Bug 风险。
2. 安全问题。
3. 性能问题。
4. 可维护性。
5. 可读性。
6. 边界情况。
7. 类型定义。
8. 测试覆盖。
请输出:
1. 问题列表。
2. 严重程度。
3. 修改建议。
4. 修改后的完整代码。
代码如下:
【粘贴代码】
四、不同技术栈的常用完整命令
1. 创建 React + Vite + TypeScript 项目
npm create vite@latest my-react-app -- --template react-ts
cd my-react-app
npm install
npm run dev
使用 pnpm:
pnpm create vite my-react-app --template react-ts
cd my-react-app
pnpm install
pnpm dev
2. 创建 Next.js 项目
npx create-next-app@latest my-next-app
cd my-next-app
npm run dev
如果想指定 TypeScript、Tailwind、App Router,可在交互中选择,也可以使用:
npx create-next-app@latest my-next-app --typescript --tailwind --eslint --app
cd my-next-app
npm run dev
3. 创建 Vue + Vite 项目
npm create vite@latest my-vue-app -- --template vue-ts
cd my-vue-app
npm install
npm run dev
4. 创建 Node + Express + TypeScript 项目
mkdir my-api
cd my-api
npm init -y
npm install express cors dotenv
npm install -D typescript ts-node-dev @types/node @types/express @types/cors
npx tsc --init
在 package.json 中添加:
{
"scripts": {
"dev": "ts-node-dev --respawn --transpile-only src/index.ts",
"build": "tsc",
"start": "node dist/index.js"
}
}
创建目录:
mkdir src
touch src/index.ts
npm run dev
Windows PowerShell:
mkdir src
New-Item src/index.ts
npm run dev
5. Docker 常用命令
构建镜像:
docker build -t my-app .
运行容器:
docker run -p 3000:3000 my-app
后台运行:
docker run -d -p 3000:3000 --name my-app my-app
查看容器:
docker ps
查看所有容器:
docker ps -a
查看日志:
docker logs my-app
停止容器:
docker stop my-app
删除容器:
docker rm my-app
删除镜像:
docker rmi my-app
五、AI 编程最佳实践
1. 不要一次性让 AI 写完整大型项目
很多人喜欢说:
帮我写一个完整电商系统。
这种方式很容易失败。更好的方式是拆成小任务:
- 先设计数据库
- 再写用户模块
- 再写商品模块
- 再写购物车模块
- 再写订单模块
- 最后写支付和部署
AI 适合解决具体问题,不适合在信息不足时一次性完成复杂系统。
2. 始终要求 AI 输出文件路径
例如:
请按以下格式输出:
文件路径:src/components/UserCard.tsx
代码:
【完整代码】
这样可以减少复制错误,也方便检查项目结构。
3. 始终要求 AI 给出运行命令
例如:
如果需要安装依赖,请给出完整命令。
如果需要修改配置,请说明修改哪个文件。
如果需要运行项目,请给出启动命令。
4. 始终让 AI 解释关键代码
不要只复制代码。建议要求:
请在代码后解释:
1. 核心逻辑。
2. 关键函数作用。
3. 为什么这样设计。
4. 可能的边界情况。
5. 保留人工判断
AI 编程的本质是提高效率,而不是替代判断。尤其在以下场景,必须人工审查:
- 支付
- 登录鉴权
- 权限系统
- 数据库迁移
- 文件上传
- 加密解密
- 生产部署
- 用户隐私数据
- 第三方 API 密钥
六、总结
AI 编程可以大幅提升开发效率,但它不是万能的。真正高效的使用方式,不是让 AI 一次性替你完成所有工作,而是把它当成一个随时可用的高级助手:让它分析问题、生成草稿、补充测试、解释错误、优化结构。
如果你想稳定地用 AI 写代码,建议牢记以下原则:
- 需求要清晰
- 上下文要完整
- 版本要明确
- 命令要验证
- 代码要审查
- 修改要小步
- Git 要常用
- 测试不能省
- 安全要人工把关
- 不要迷信 AI 输出
最后,给出一个通用 AI 编程请求模板,几乎适用于所有开发场景:
你是一名资深软件工程师。请基于我的项目环境和需求完成任务。
项目环境:
- 操作系统:
- Node.js 版本:
- 包管理器:
- 前端框架:
- 后端框架:
- 数据库:
- 其他关键依赖:
项目结构:
【粘贴项目结构】
需求:
【详细描述需求】
现有代码:
【粘贴相关代码】
要求:
1. 先分析问题和实现思路。
2. 说明需要修改哪些文件。
3. 给出完整代码,不要省略。
4. 标明每段代码的文件路径。
5. 如需安装依赖,给出完整命令。
6. 如需配置环境变量,给出 .env.example。
7. 考虑错误处理、类型安全和边界情况。
8. 最后给出运行、测试和构建命令。
配合这个模板,再结合本文中的命令和排查方法,你会明显减少 AI 编程中的踩坑概率,让 AI 真正成为你的开发加速器。