装对插件并配置yaml.schemas或json.schemas后,yaml/json才具备字段级校验能力;须安装redhat.vscode-yaml、禁用冲突插件、设对语言模式、用相对路径绑定本地或远程schema。

装对插件、配好 Schema,YAML 和 JSON 才算真正“可校验”。只装 redhat.vscode-yaml 或依赖 VSCode 内置 JSON 支持,90% 的字段级错误(比如 Kubernetes 中写错 imagePullPolicy: Always 拼成 Alaways)根本不会报。
必须安装 redhat.vscode-yaml,禁用所有冲突插件
VSCode 1.86+ 虽内置基础 YAML 支持,但会与非 Red Hat 插件(如 YAML Tools、Auto Close Tag)抢语言服务器,导致补全失效、悬停无响应、甚至 yaml-language-server 连接拒绝。
- 在扩展市场搜索
Red Hat YAML,认准发布者为Red Hat、ID 为redhat.vscode-yaml - 安装后执行
Cmd+Shift+P→ 输入Developer: Reload Window重载窗口 - 打开扩展视图,禁用所有名称含
YAML Tools、YAML Validation、Auto Close Tag的插件 - 右下角状态栏确认当前文件语言模式是
YAML(不是Plain Text),否则点击切换
yaml.schemas 必须手动配置,否则只是“语法高亮”
没配 yaml.schemas,插件只会检查缩进、冒号、引号等基础语法;Kubernetes 字段名、Ansible 模块参数、GitHub Actions 的 on.push.branches 是否合法——全都不会校验。
用于端到端视频本地化流程的轻量编排器,路由至四个专注子技能——/wjs-transcribing-audio、/wjs-translating-subtitles...
- 在项目根目录创建
.vscode/settings.json(工作区级配置,避免污染全局) - 添加如下片段(以 GitHub Actions 为例):
"yaml.schemas": { "https://json.schemastore.org/github-workflow.json": "/.github/workflows/*.yml" } - 路径匹配基于工作区根目录,
*表示单层通配,**表示递归;不要写绝对路径或正则 - 确保远程 Schema 地址返回 HTTP 200(若网络受限,改用本地 Schema 文件,见下一条)
JSON 校验依赖 language mode + json.schemas,注释是关键陷阱
VSCode 对 JSON 的校验行为高度依赖右下角显示的语言模式:JSON 模式严格拒绝注释;JSONC 模式允许注释但会跳过部分语义检查——很多团队误以为“能格式化=已校验”,结果上线后因注释未被清除而解析失败。
- 打开文件后先看右下角:若显示
Plain Text或JSONC,点击它 → 选择Configure File Association for '.xxx'→ 设为JSON - 在
.vscode/settings.json中配置 Schema 绑定:"json.schemas": [ { "fileMatch": ["package.json"], "url": "https://json.schemastore.org/package.json" } ] - 如果文件含
//或/* */注释,且你希望保留它们,必须用JSONC模式;但此时eslint或 CI 中的jq校验仍会失败——注释不是 JSON 标准的一部分
本地 Schema 是离线/定制场景的唯一可靠方案
远程 Schema 加载失败(超时、404、公司代理拦截)时,yaml-language-server 会静默降级,编辑器表现和没配 Schema 一样。这时候必须切到本地文件路径,且路径必须相对于工作区根目录。
- 生成本地 Kubernetes Schema 示例:
kubectl get --raw "/openapi/v2" | jq '.definitions' > .vscode/schema/kubernetes-schema.json
- 在
.vscode/settings.json中绑定:"yaml.schemas": { "./.vscode/schema/kubernetes-schema.json": "**/k8s/*.yaml" } - 注意
./开头表示相对路径;如果路径写成.vscode/schema/...(缺./),插件会当成 URL 去请求,必然 404 - 自定义 Schema 文件建议用
.schema.json后缀,并提交到 Git,确保团队成员获得一致校验逻辑
Schema 绑定不是“配一次就完事”的设置——它依赖路径匹配精度、网络可达性、语言模式识别准确性三者同时成立。一个 **/deploy/*.yml 匹配不到 helm/templates/deployment.yaml,往往是因为 glob 没覆盖子目录层级,而不是插件坏了。










