VSCode与Neovim中Prettier三元运算符格式化不一致求助
解决VSCode与Neovim中Prettier格式化嵌套三元运算符缩进不一致的问题
问题背景
团队成员同时使用VSCode和Neovim开发JavaScript/TypeScript项目时,嵌套三元运算符的格式化缩进出现差异:
- Neovim格式化结果:
intent={ invoiceNumberError === "" ? Intent.NONE : existingVoteNumbers.length > 0 ? Intent.DANGER : Intent.NONE }
- VSCode格式化结果:
intent={ invoiceNumberError === "" ? Intent.NONE : existingVoteNumbers.length > 0 ? Intent.DANGER : Intent.NONE }
项目已配置.prettierrc,但缩进差异导致Git Diff出现冗余变更。
解决方案
1. 统一使用项目本地Prettier版本
全局与本地Prettier版本规则可能存在差异,需确保两边都调用项目node_modules内的版本:
- VSCode:打开设置,搜索
prettier.packageManager,设置为npm/yarn,让编辑器优先读取项目本地依赖。 - Neovim:若使用
null-ls作为格式化工具,配置时指定优先使用本地Prettier:
local null_ls = require("null-ls") null_ls.setup({ sources = { null_ls.builtins.formatting.prettier.with({ prefer_local = "node_modules/.bin", }), }, })
2. 确保两边Prettier版本完全一致
在项目根目录执行npx prettier --version,让所有成员确认本地安装的Prettier版本与项目依赖版本一致。若版本不同,执行npm install prettier@指定版本统一版本。
3. 排除其他格式化工具干扰
- VSCode:关闭ESLint等工具的自动格式化功能,确保仅Prettier处理JS/TS文件。
- Neovim:检查配置,关闭其他可能处理JS/TS的格式化器(如
eslint_d),避免规则冲突。
4. 验证配置加载有效性
在项目根目录执行npx prettier --check 目标文件.js,确认输出结果在两个编辑器中一致,验证.prettierrc配置被正确加载。
内容的提问来源于stack exchange,提问作者Owenn
相关产品推荐
相关产品推荐

