改完 Cocos Creator 的脚本,在 VS Code 里按下保存,终端没有编译输出,切回 Cocos Creator 还是要手动点刷新;你明明已经配了 cocos.creator.devtools.save,保存代码自动编译却像没发生。这篇按排障顺序来:先把 Codex 接到 TaoToken,打开 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 创建 YOUR_API_KEY,把 Codex 的 Base URL 填成 https://taotoken.net/api,再让 Codex 对照项目里的 .vscode/settings.json 检查 cocos.creator.devtools.port 是否等于 7456、cocos.creator.devtools.save 是否为 true。TaoToken 只供 Codex 调用,不参与编译触发,编译仍由 Cocos Creator Devtools 完成。

这个链路里最容易混的是职责。Cocos Creator Devtools 插件把 VS Code 的保存动作,通过本地端口告诉 Cocos Creator 服务端,由服务端执行编译;它不是把编译器搬进 VS Code,也不是让 Codex 去编译。Codex 在这里只做一件事:读配置、找差异、给你修正后的 JSON。settings.json 写对、端口通、插件启用、Cocos Creator 打开同一个项目,保存自动编译才会稳定工作。

1. 保存后没编译:先把 Cocos Creator Devtools 的链路拆开

1.1 症状复现:按了保存,谁没收到信号

先把问题描述清楚:在 VS Code 中打开 Cocos Creator 项目的脚本,修改一行,按 Command + S 或 Ctrl + S。预期是 Cocos Creator 控制台出现编译日志,或者编辑器状态栏提示正在编译;实际却是 VS Code 保存成功,Cocos Creator 没有刷新,必须手动点刷新按钮。

这时候不要急着改 Codex 提示词,也不要反复重装 VS Code。保存自动编译至少经过四段链路:

  1. VS Code 正常保存文件;
  2. Cocos Creator Devtools 插件监听到保存事件;
  3. 插件通过配置的端口,把编译请求发给 Cocos Creator 服务端;
  4. Cocos Creator 收到请求并执行编译。

任何一段断开,表象都是“保存没编译”。而 .vscode/settings.json 正处在第二段和第三段之间,它告诉插件:端口是多少、保存时要不要触发。原文里提到 cocos.creator.devtools.port 要配上 Cocos Creator 服务端端口,cocos.creator.devtools.save 为 true 时保存才自动触发,这两个键就是本文的第一现场。

1.2 第一现场是 .vscode/settings.json,不是 Codex 提示词

很多人的排查顺序是反的:先问 Codex“为什么保存不编译”,但没告诉它项目根目录、插件名、端口和当前配置文件内容。Codex 再强,也只能根据你贴的上下文猜。更稳的做法是让它直接对照 .vscode/settings.json,把缺失项、类型错误、拼写错误列出来。

要注意文件位置。.vscode/settings.json 应该放在当前 Cocos Creator 项目的根目录下,而不是放在用户级设置里,也不是放在某个无关文件夹。VS Code 的工作区设置和文件夹设置会合并,但插件读取项目配置时,通常以你打开的工作区根目录为准。如果你只打开了 assets/scripts,根目录就不是项目根,插件自然可能找不到配置。

1.3 本文分工:Codex 查配置,TaoToken 供调用,Devtools 管编译

这篇的分工很明确:

  • Cocos Creator Devtools:负责把编译请求送到 Cocos Creator,并支持 cocos-compile 命令;
  • .vscode/settings.json:负责声明端口 7456 和保存触发 true;
  • Codex:负责读取配置、解释报错、生成修正后的 JSON;
  • TaoToken:负责让 Codex 有可用的模型调用通道,Base URL 填 https://taotoken.net/api,不参与编译触发。

别把 TaoToken 当编译器,也别把 Codex 当 Cocos Creator 服务端。它们只是帮你更快定位配置差异。

2. Codex 接 TaoToken:~/.codex/config.toml 里 base_url 怎么填

2.1 打开 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 创建 YOUR_API_KEY

先准备 Key。打开 TaoToken,注册或登录后进入控制台,创建一把 API Key。本文统一用占位符 YOUR_API_KEY,你实际填自己的 Key。创建时建议按用途命名,比如 codex-cocos-settings,以后在控制台看用量时更容易分辨是哪一类调用。

模型 ID 不要凭记忆写。不同账号、不同时间看到的模型列表可能不同,具体用哪个模型,以模型广场当时列表为准。你可以打开 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 查看可选模型,再把它填进 Codex 配置。不要自己拼一个带日期后缀的名字,也不要把网上抄来的模型 ID 当成本地配置的正式值。

2.2 config.toml 配置示例与参数表

Codex 的配置文件通常在 ~/.codex/config.toml。把 model_provider 指到自定义供应商,把 base_url 填成 https://taotoken.net/api,注意末尾不要加 /v1。下面是一份可复制的示例:

# 模型 ID 以 TaoToken 模型广场当时列表为准
model = "YOUR_MODEL_ID"
model_provider = "taotoken"

[model_providers.taotoken]
name = "TaoToken"
base_url = "https://taotoken.net/api"
env_key = "TAOTOKEN_API_KEY"
wire_api = "chat"

对应的环境变量这样设置。macOS / Linux:

export TAOTOKEN_API_KEY="YOUR_API_KEY"
codex

Windows PowerShell:

$env:TAOTOKEN_API_KEY="YOUR_API_KEY"
codex

这里不要套用 Claude Code 的 ANTHROPIC_* 变量。Codex 读的是它自己的 config.toml 和 env_key,两套配置不要混。参数对照如下:

配置项推荐值说明
modelYOUR_MODEL_ID以模型广场当时列表为准
model_providertaotoken与下面的 [model_providers.taotoken] 对应
base_urlhttps://taotoken.net/api末尾不要加 /v1
env_keyTAOTOKEN_API_KEYCodex 从这个环境变量读 Key
YOUR_API_KEY控制台创建从 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 创建

2.3 启动 Codex 并确认工作区根目录

配置保存后,不要直接在随便一个终端里运行 codex。先 cd 到 Cocos Creator 项目的根目录,也就是能看到 assets、settings、.vscode 的那一级,再启动。这样 Codex 读取 .vscode/settings.json 时,路径才对得上。

可以在项目根目录执行:

pwd
ls -la .vscode

Windows 可以用:

Get-Location
Get-ChildItem .vscode

如果 .vscode 目录不存在,说明你还没在项目根目录下创建 VS Code 工作区配置。让 Codex 生成一份最小配置即可,但不要让它顺带修改 Cocos Creator 的 settings 目录,也不要让它执行编译命令。我们只要它做配置对照。

3. 让 Codex 逐项对照 .vscode/settings.json 的 7456 和 save

3.1 给 Codex 的排障提示词

在项目根目录启动 Codex 后,把下面这段提示词贴进去。它的重点是限定范围:只读配置、只做对照、不执行编译。

你是 Cocos Creator + VS Code 配置排障助手。
任务:只读取当前项目根目录的 .vscode/settings.json,做配置对照,不执行编译,不连接数据库或生产服务。
检查:
1. cocos.creator.devtools.port 是否为数字 7456;
2. cocos.creator.devtools.save 是否为布尔 true;
3. 当前工作区根目录是否就是 Cocos Creator 项目根目录;
4. settings.json 是否有 JSON 语法错误、尾逗号、注释、键名拼写错误。
输出:
- 差异清单;
- 推荐的最小 settings.json 全文;
- 如果文件不存在,给出创建路径。
不要运行 cocos-compile,不要修改 assets 下的脚本。

这段提示词没有让 Codex 直接操控 Cocos Creator,也没有让它编译。它只是读文件、比对预期值。Codex 可以告诉你“当前 save 是字符串 "true",不是布尔 true”,也可以告诉你“port 是 7457,与预期 7456 不一致”。这些判断比你自己盯着 JSON 看更稳。

3.2 Codex 返回差异后,在本地确认并保存

Codex 返回修正 JSON 后,不要闭眼覆盖。先看三件事:

  • 它有没有保留你项目里其他 VS Code 设置。如果 .vscode/settings.json 里还有格式化、终端、插件设置,不能只留 Cocos Devtools 这两项。
  • 它有没有把端口写成字符串。"cocos.creator.devtools.port": "7456" 和 7456 在 JSON 里不是一回事,插件如果按数字读,字符串可能匹配不上。
  • 它有没有把 true 写成 "true"。布尔值和字符串同样容易出问题。

确认无误后,由你在本地保存文件。Codex 可以生成内容,但最终写盘、重启插件、触发编译这些动作,都由你在 VS Code 和 Cocos Creator 里完成。这样既安全,也便于你知道每一步改了什么。

3.3 正确的最小 settings.json

如果项目里还没有 .vscode/settings.json,最小配置如下:

{
  "cocos.creator.devtools.port": 7456,
  "cocos.creator.devtools.save": true
}

cocos.creator.devtools.port 对应 Cocos Creator 服务端端口。原文里默认写的是 7456,如果你的 Cocos Creator 偏好设置里改过服务端口,就要以实际端口为准;但本文排障先按 7456 对照,因为大量教程和默认配置都从它开始。cocos.creator.devtools.save 为 true 时,VS Code 保存代码会触发 Cocos Creator 编译;不想保存时自动编译,可以删掉这项,或者改成 false,之后用命令面板手动触发。

4. 改完 settings.json 仍不触发:用 cocos-compile 和输出面板分段验证

4.1 命令面板手动触发 cocos-compile

配置写对后,先别急着反复保存。打开命令面板:

  • macOS:Command + Shift + P
  • Windows / Linux:Ctrl + Shift + P

输入 cocos-compile,选择插件提供的编译命令。这个动作绕过了“保存事件”这一层,直接验证插件到 Cocos Creator 的通道。如果手动执行 cocos-compile 能编译,说明端口和插件基本通;问题更可能在保存监听、文件类型或工作区范围。如果手动执行也没反应,优先查端口、插件启用状态和 Cocos Creator 是否打开项目。

4.2 看输出面板和端口监听

VS Code 的“输出”面板里通常可以选择 Cocos Creator Devtools 相关通道。手动执行 cocos-compile 后,看有没有请求发送、连接失败、端口拒绝之类的日志。没有日志不代表没问题,但如果有 ECONNREFUSED,基本就是本地端口没人监听。

你可以在本地终端检查 7456 是否被监听。macOS / Linux:

lsof -i :7456

Windows:

netstat -ano | findstr :7456

这些命令由你在本地执行,再把结果贴回 Codex 对话里让它解释。不要让 Codex 直接连你的生产机器或业务服务,它只负责看输出、给判断。Cocos Creator 的开发服务端口是本地开发环境的一部分,和 TaoToken 的 Base URL 是两件事:https://taotoken.net/api 是 Codex 的模型通道,7456 是 Cocos Creator Devtools 的本地端口,不要混填。

4.3 Cocos Creator 必须打开同一个项目

插件通过端口把请求发给 Cocos Creator 服务端,但服务端只会处理它当前打开的项目。如果你 VS Code 打开的是 A 项目,Cocos Creator 打开的是 B 项目,保存自动编译看起来就会失效,或者编译到了另一个项目里。

排障时把两个窗口对齐:VS Code 工作区根目录、Cocos Creator 当前项目、.vscode/settings.json 所在目录,三者应该指向同一个项目。多开 Cocos Creator 时尤其容易串。关掉无关项目,只留一个,再执行一次 cocos-compile。这一步能排除很多“配置明明对,但就是不动”的假故障。

5. 保存自动编译的分叉排查:工作区、JSON、端口、插件

5.1 工作区根目录不对

VS Code 的工作区根目录决定了 .vscode/settings.json 从哪里读。常见错误是只打开了 assets/scripts 子目录,然后在子目录里新建 .vscode/settings.json。插件可能仍能运行,但它读到的配置和 Cocos Creator 项目根目录下的配置不是同一份。

检查方式很简单:在 VS Code 终端执行 pwd 或 Get-Location,看输出是不是项目根目录。如果不是,关掉当前窗口,重新打开项目根目录。之后再看 .vscode/settings.json 是否在根目录下。用 Codex 检查时,也把“当前工作区根目录是否就是项目根目录”写进提示词,让它一起判断。

5.2 JSON 语法和类型错误

.vscode/settings.json 是 JSON,不是 JSON5。多一个尾逗号、多一行 // 注释、键名少一个点,都可能导致整个文件解析失败。插件读不到配置,保存自然不触发。常见错误包括:

  • "cocos.creator.devtools.save": "true",值带引号;
  • "cocos.creator.devtools.port": "7456",端口带引号;
  • 最后一项后面多了一个逗号;
  • 键名写成 cocos.creator.devtool.save,少了一个 s;
  • 文件里混入中文引号。

让 Codex 输出完整 JSON 后,直接替换整个文件,比手工改更稳。替换后保存,VS Code 如果 JSON 语法有问题,通常会在编辑器里给出波浪线提示。

5.3 7456 端口被占用或服务端口改过

cocos.creator.devtools.port 必须和 Cocos Creator 实际服务端口一致。默认值常见是 7456,但如果你改过偏好设置,或者另一个版本占用了端口,插件就会连接失败。先用 lsof 或 netstat 看 7456 有没有监听,再对照 Cocos Creator 的设置。

如果端口不是 7456,就把 .vscode/settings.json 改成实际值,不要强行让 Cocos Creator 迁就旧配置。改完后重启 VS Code 窗口,让插件重新读取设置。注意,这个端口是本地开发端口,和 TaoToken 的 https://taotoken.net/api 完全无关,不要把两者写在一起。

5.4 插件启用状态与版本匹配

Cocos Creator Devtools 插件要在 VS Code 中启用,并且和你的 Cocos Creator 版本兼容。插件被禁用、工作区禁用、版本过旧,都可能让保存事件发不出去。检查扩展面板里它是否处于启用状态,是否有更新提示。如果更新后仍不生效,可以禁用再启用,或者重启 VS Code。

手动执行 cocos-compile 是这个分支的照妖镜。手动能编译,说明插件主通道没问题;手动不能编译,优先查插件、端口和 Cocos Creator 窗口。Codex 在这里可以帮你读插件输出、解释报错,但安装、启用、重启这些动作还是你来做。

6. 跑通后去模型对话和控制台确认这次 Codex 调用

6.1 用同一把 Key 发一条测试消息

.vscode/settings.json 改完,cocos-compile 也能手动触发后,可以顺手验证 Codex 这条通道。打开 TaoToken 模型对话,用同一把 Key 发一条测试消息,确认模型 ID 和 Base URL 没填错。如果你在 Codex 里遇到 401,先看环境变量名是不是 TAOTOKEN_API_KEY,再看 Key 有没有多余空格;如果遇到路径类错误,先确认 base_url 是不是 https://taotoken.net/api,末尾不要加 /v1。

模型对话里能正常返回,说明调用通道没问题。剩下如果 Codex 还读不到 .vscode/settings.json,那就是工作区根目录或文件位置的问题,不是 Key 的问题。把这两类问题分开,排查会快很多。

6.2 控制台看用量,Coding Plan 看长期写代码

配置对照、读日志、解释 JSON 报错,这些都会消耗调用次数。跑通后可以回到 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 看这次调用的用量,确认记录是否符合预期。如果你准备长期让 Codex 帮你读项目配置、对照 settings.json、检查 cocos.creator.devtools 相关设置,可以打开 Coding Plan 看看套餐是否够用;Key 的创建和管理在 控制台 API Keys。后面如果要换 Claude Code 写代码,环境变量对照见 Claude Code 接入文档。

6.3 把这次排障沉淀成提示词

下次再遇到“保存不自动编译”,不用重新描述一遍。把下面这段存成项目里的排查提示词,遇到问题直接贴给 Codex:

请读取当前项目根目录的 .vscode/settings.json。
对照 Cocos Creator Devtools 的预期配置:
- cocos.creator.devtools.port 应为 7456,且为数字;
- cocos.creator.devtools.save 应为 true,且为布尔值;
- 如果项目实际端口不是 7456,请先列出当前值与可能来源。
同时检查 JSON 语法、工作区根目录、插件是否启用。
不要执行编译,不要连接生产服务。
输出差异和修正后的完整 settings.json。

保存自动编译的开关仍在 .vscode/settings.json 和 Cocos Creator Devtools 里,Codex 帮你找差异,TaoToken 保证它问得到模型。三者职责分清,再遇到保存没反应,就从 7456、save、工作区根目录和 cocos-compile 这四处按顺序过一遍,而不是靠猜。

更多推荐