根本原因是vscode未交出校验和格式化控制权:需禁用javascript.validate.enable、指定editor.defaultformatter为prettier、确保.eslintrc.js含prettier配置,否则内置校验与eslint并行导致规则冲突。

ESLint 和 Prettier 冲突导致保存后代码乱跳
这是 JS 开发者最常遇到的「自动格式化失灵」问题:明明写了 eslint-config-prettier,但保存时还是缩进错乱、引号来回切换、甚至报红。根本原因不是插件没装,而是 VSCode 没把校验和格式化的控制权交出去。
- 必须关掉 VSCode 自带的 JS 校验:
javascript.validate.enable设为false,否则它会和 ESLint 并行校验,规则打架 -
editor.formatOnSave要启用,但必须指定 formatter:"editor.defaultFormatter": "esbenp.prettier-vscode",否则 VSCode 可能调用内置格式器 - 项目根目录下必须有
.eslintrc.js(或.json),且extends中明确包含"prettier"和"prettier/react"(如用 React) - 如果用了 TypeScript,
typescript.preferences.includePackageJsonAutoImports建议设为"auto",避免类型导入缺失引发 ESLint 报错
Volar/Vetur 与 JavaScript 插件共存引发语法高亮失效
Vue 项目里装了 Volar(Vue 3 推荐),再装 JavaScript and TypeScript Nightly 或旧版 Auto Import,经常出现 ref 不识别、defineProps 报错、组合式 API 无提示——不是 Vue 版本问题,是语言服务器抢占了文件处理权。
- Vue 3 项目只保留
Volar,彻底卸载Vetur(二者冲突已写死,VSCode 不会警告) - 禁用 VSCode 内置的
HTML Language Features对.vue文件的支持:在设置里搜html.suggest.html5,取消勾选,避免干扰 Volar 的模板解析 - 确保
vetur.validation.template是false(如果残留 Vetur 配置),否则它会强行校验 template 区域,而 Volar 已接管 -
files.associations中不要硬写"*.vue": "html",这会让 VSCode 把 .vue 当纯 HTML 处理,绕过 Volar
Path Intellisense 补全路径却找不到深层嵌套文件
输入 ./src/comp 按 Tab,只列出一级子目录,./src/components/Button 这类多层路径补不出来——不是插件坏了,是它默认不递归扫描,且对别名路径(@/)支持有限。
- 在
settings.json中显式开启深度扫描:"path-intellisense.mappings": { "@": "${workspaceFolder}/src" },让@/映射生效 - 添加
"path-intellisense.showHiddenFiles": true,否则.gitignore里排除的目录(比如node_modules下的包路径)不会被索引 - 如果项目用了 Webpack 别名(如
~components),需同步配置path-intellisense.mappings,否则补全完全不可用 - 注意:该插件不解析
tsconfig.json的paths,TypeScript 项目务必额外配jsconfig.json或tsconfig.json的compilerOptions.baseUrl和paths
Console Ninja 日志不显示或堆栈无法跳转到源码
插件装了、项目跑了,但编辑器里看不到 console.log 输出,或者点错误堆栈跳转失败——大概率是运行时环境没被正确捕获,而不是插件本身故障。
- 仅支持主流启动命令:Vite(
vite)、Webpack Dev Server(webpack serve)、Next.js(next dev)、NestJS(npm run start:dev)。用node app.js直接运行,Console Ninja 默认不监听 - 确保终端输出中含
Compiled successfully或ready in类似字样,这是 Console Ninja 的启动触发信号;若用自定义脚本,需在脚本末尾 echo 一行匹配关键词 - 堆栈跳转依赖 sourcemap。检查构建配置:
vite.config.ts中build.sourcemap必须为true,Webpack 需启用devtool: 'source-map' - Vue/React 项目若用
setup()或useEffect,日志可能被框架批量合并,此时需在 Console Ninja 设置中开启"console-ninja.mergeDuplicates": false











