浏览 AI 使用教程
操作教程

Codex读懂现有项目怎么做:先画入口、数据和构建关系

让Codex读懂现有项目时,从一个具体问题追踪入口、数据源、生成物和验证命令,先形成小范围结构图再开始修改。

Codex项目开发与自动化工作流主视觉

先看重点:快速结论

  1. 用四个完整小文件还原构建链路。
  2. 读取 package.json 不等于执行构建,首次侦察保持只读。
本文目录 · 跳到当前步骤

接手陌生项目时,先提出一个具体问题:“页面里的副标题从哪里来?”这个问题比“解释所有文件”更容易导向可靠的修改位置。下面用一个可以自行建立的教学项目演示;读者可以先只阅读文件,不执行构建。

一组能追踪的文件

在新的 site-map-demo 目录中,按下列路径保存四个文件。Node.js 20 或更新版本即可运行,没有第三方依赖。

package.json:

json
{
  "name": "site-map-demo",
  "private": true,
  "type": "module",
  "scripts": { "build": "node scripts/build.mjs" }
}

content/home.json:

json
{"title":"小型知识站","subtitle":"先完成一个可以检查的小任务"}

templates/home.html:

html
<!doctype html>
<html lang="zh-CN">
<head><meta charset="utf-8"><title>{{title}}</title></head>
<body><h1>{{title}}</h1><p>{{subtitle}}</p></body>
</html>

scripts/build.mjs:

js
import fs from 'node:fs';
const data = JSON.parse(fs.readFileSync('content/home.json', 'utf8'));
const template = fs.readFileSync('templates/home.html', 'utf8');
const escape = value => String(value).replace(/[&<>"']/g, char =>
  ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#39;' }[char]));
const html = template.replace(/{{(title|subtitle)}}/g, (_, key) => escape(data[key]));
fs.mkdirSync('public', { recursive: true });
fs.writeFileSync('public/index.html', html);

生成后的 public/index.html 是输出,初次建立目录时可以还不存在。该脚本要求从项目根目录运行,因为读取路径以当前工作目录为基准。

第一轮只读,找出证据

在 PowerShell 中运行:

powershell
Get-Content -LiteralPath package.json
rg --files content templates scripts
rg -n --fixed-strings "subtitle" content templates scripts
rg -n "readFileSync|writeFileSync" scripts

没有 rg 时,用编辑器搜索相同字段即可。不要为了画结构图先运行一个不熟悉的安装或构建脚本;这些命令可能执行任意脚本和写文件。先读懂它们的内容。

给 Codex 的任务可以是:

text
只读这个项目,回答首页副标题应改哪里。
沿 package.json 的 build 入口追踪内容、模板和输出;每条关系注明文件与行号。
区分已读源码能够证明的事实与还没执行的检查。
本轮不修改文件,不安装依赖,不运行构建。

本例应得到怎样的地图

角色 路径与证据 结论
入口 package.json 的 build npm run build 会执行 scripts/build.mjs
内容 build.mjs 读取 content/home.json 副标题来自 JSON 的 subtitle 字段
模板 build.mjs 读取 templates/home.html title 与 subtitle 占位符决定插入位置
输出 build.mjs 写 public/index.html 直接编辑输出会在下次构建时丢失
环境 脚本使用相对路径 命令应从项目根运行

对应的关系是 package.json → scripts/build.mjs → 读取 JSON 与模板 → 写 public/index.html。这个关系来自源码,不需要先执行脚本才知道。

如果真实项目有多个 build 命令,继续检查调用链;若同一个输出被多个脚本写入,也应记在地图中。搜索到含相同文案的文件,只能说明它是候选,不能证明它就是最终来源。

第二轮才验证修改路径

允许修改后,只调整 content/home.json 的 subtitle,再运行:

powershell
npm run build
rg -n --fixed-strings "可以检查" public/index.html

预期输出文件中的 p 内容与 JSON 一致,HTML 特殊字符会被转义。此时再打开页面检查显示。上述结果是教学预期;在自己的环境中,需保存实际命令输出后才能写“已验证”。

在真实仓库里,还应核对现有测试和部署入口是否读取 public/。本例没有部署、导航、路由与增量构建,不能据此假定任何真实站点都有相同结构。地图的完成标准是它能解释本次需求的正确修改点,不是把目录清单写得很长。

资料来源

下一步

继续阅读与你当前问题相关的教程: