Codex清理代码时若遇动态调用(如import()、require()、eval等)会误删模块,导致运行时报错;需先识别动态加载模式,再通过人工标注、自动扫描或Composer感知确定保护清单,最后执行带路径匹配与require.resolve验证的安全清理。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Codex清理代码时若无法识别动态调用关系,会把实际被 require()、import()、eval() 或字符串拼接路径加载的模块当作“未引用代码”直接删除,导致运行时报 Cannot find module 或 ReferenceError。
先确认是否存在动态调用模式
打开项目根目录下的 tsconfig.json 或 jsconfig.json,检查 "resolveJsonModule"、"allowSyntheticDefaultImports" 是否为 true;再搜索项目中是否出现 require(、import(、__non_webpack_require__、eval(、Function( 等调用形式。【若存在任一动态加载语法,禁止直接执行“删除无引用导出”类指令】。
通过本地 Codex 或 OpenClaw OAuth 凭证直接调用 ChatGPT/Codex Responses 的 image_generation 工具来生成或编辑光栅图像,然后保存
运行 grep -r "import(" --include="*.ts" --include="*.js" . | head -n 5 快速抽样验证。如果输出中包含类似 import(`./pages/${pageName}.tsx`) 的模板字符串导入,说明项目明确依赖运行时路径解析。
锁定动态调用入口文件并标记为保护区
方法一:人工标注关键 loader 文件
在项目中定位所有承担模块加载职责的文件,常见位置包括:src/utils/dynamic-loader.ts、src/router/loaders.ts、src/plugins/async-importer.js。对这些文件开头添加注释:// @codex-protect: dynamic-import-root。
方法二:用 Codex 自动扫描并生成保护清单
输入指令:“请扫描当前项目中所有使用 import()、require() 字符串拼接或 eval 加载模块的文件,输出相对路径列表,并标注每处调用的被加载模块路径模式(如 ./features/${feature}/index.ts)。不修改任何文件,只输出清单。”
方法三:启用 Codex Composer 的跨文件引用感知
在 Composer 工作区中打开主入口文件(如 main.tsx),将光标停在 import() 调用行 → 右键选择 “Show Dynamic Dependencies” → Codex 会自动列出该表达式可能命中的一组文件路径。将这些路径全部加入本次清理的 【保留白名单】。
执行带路径模式匹配的安全清理
第一步:生成候选删除列表
运行指令:“请列出 src/ 下所有导出函数/类但未被静态 import 语句直接引用的文件;对每个文件,检查其路径是否匹配以下动态加载模式:① ./pages/*、② ./features/*/index.ts、③ ./plugins/*/loader.js;若匹配任意一条,跳过该文件,不列入删除候选。”
第二步:验证动态路径是否真实存在
对上一步剩余的候选文件,逐个执行:node -e "console.log(require.resolve('./${relativePath}'))"。若报错 Cannot find module,说明该路径从未被任何 require() 或 import() 字符串字面量覆盖,可安全删除;若成功返回路径,则必须保留在白名单中。
第三步:执行清理并强制记录依据
输入:“按上述验证结果删除候选文件;每删一个,必须在输出中写明:① 删除文件路径;② 静态分析结论(如‘无 import 语句引用’);③ 动态路径匹配检查结果(如‘不匹配 ./pages/* 模式’);④ require.resolve 验证结果(如‘报错:Cannot find module’)。”

















