VS Code JavaScript 无颜色主因是语言模式错误、插件干扰或主题配置问题;需检查右下角语言模式是否为JavaScript,禁用冲突插件,切换默认主题并验证TokenColorCustomizations设置。

VS Code 里 JavaScript 代码没颜色,大概率是文件没被识别为 javascript
VS Code 不是靠文件后缀“猜”语言,而是靠 language mode(语言模式)决定语法高亮。哪怕你打开的是 index.js,如果右下角显示的是 Plain Text 或 json,那所有高亮都会失效。
实操建议:
- 按
Ctrl+Shift+P(windows/linux)或Cmd+Shift+P(macos),输入Change Language Mode,回车 - 在弹出框里选
JavaScript(不是JavaScript React,除非你真在写 JSX) - 确认右下角状态栏显示
JavaScript,且文字立刻变色 - 如果每次打开都重置,检查文件是否被
.vscode/settings.json里的"files.associations"错误覆盖,比如写了"*.js": "json"
装了插件但 JS 还是灰的,先关掉 javascript.suggest.autoImports 类干扰项
某些插件(尤其是老旧的 ESLint、TSLint 或自定义语法高亮扩展)会劫持语言服务,导致内置的 javascript 高亮引擎被绕过。症状是:关键词(function、const)没色,但字符串和注释有颜色——说明只是语义高亮挂了,基础文本渲染还在。
实操建议:
- 进设置(
Ctrl+,),搜javascript.suggest.autoImports,暂时禁用 - 再搜
typescript.preferences.includePackageJsonAutoImports,也关掉 - 重启 VS Code,不装任何第三方插件,只留默认
JavaScript (es6) language features - 如果这时恢复高亮,问题就出在某个插件上,逐个启用排查
用 import / export 的文件被当成 javascriptreact,结果 fetch 不变蓝
VS Code 默认把含 import 的 .js 文件识别为 javascriptreact(即支持 JSX 的 JS),但它用的是 TypeScript 的语言服务,对纯 JS 的全局变量(如 fetch、localStorage)不标记颜色,只标语法结构。
实操建议:
- 右下角点击当前语言模式(比如显示
JavaScript React),选Configure File Association for '.js' - 选
JavaScript,不是JavaScript React - 如果项目确实要混用 JSX,就在文件顶部加注释
// @ts-nocheck或改用.jsx后缀,避免歧义 - 注意:改完后
import语句可能暂时报错——这是正常现象,因为原生 JS 不支持import,得靠打包工具或type="module",高亮和运行是两回事
颜色变了但看起来怪怪的,检查主题和 editor.tokenColorCustomizations
VS Code 主题(theme)控制最终呈现的颜色,不是语法解析器。有些主题(比如 Nord、Dracula)对 keyword 和 function 用了相近色值,肉眼难分;还有人手动改过 tokenColorCustomizations,把 String 设成和背景一样白。
实操建议:
- 换回官方主题试:设置里搜
workbench.colorTheme,选default Dark+或Default Light+ - 打开
settings.json,删掉所有带tokenColorCustomizations的块 - 如果必须自定义,只改明确 token 类型,比如:
"editor.tokenColorCustomizations": { "textMateRules": [{ "scope": ["keyword"], "settings": {"foreground": "#c792ea"} }] }
JS 语法高亮本质是三步联动:文件被正确识别为 javascript → 内置语言服务解析出 token 类型 → 主题把 token 映射成颜色。任一环断掉,颜色就丢。最常被忽略的是第二步——你以为它在解析 JS,其实它在跑 TS 服务,或者压根没启动。