prettier与editorconfig必须共存且分工明确:prettier负责代码样式重写,editorconfig负责编辑器行为初始化;仅配其一将导致跨机器格式化不一致。

Prettier 和 EditorConfig 必须共存,且分工不能颠倒——Prettier 负责代码样式重写,EditorConfig 负责编辑器行为初始化;只配一个,格式化结果在不同机器上必然不一致。
为什么 .js 文件保存后没反应
VSCode 默认用内置的 vscode.typescript-language-features 处理 JavaScript,Prettier 插件装了也不会自动接管。常见错误包括:
-
editor.formatOnSave写在全局 settings.json 里,但该设置对 JavaScript 语言无效——必须放在[javascript]语言块中 -
editor.defaultFormatter值写成prettier-vscode或prettier,正确 ID 是esbenp.prettier-vscode - 项目没装
prettier包,插件找不到 CLI,静默失败,控制台也无报错提示
实操建议:在项目根目录运行 npm install --save-dev prettier,并在 .vscode/settings.json 中写入:
{
"[javascript]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
}
.prettierrc 和 .editorconfig 别设冲突的缩进值
Prettier 控制代码输出时的缩进(如 tabWidth),EditorConfig 控制你在 VSCode 里敲 Tab 键时插入几个空格、回车后新行的缩进量(indent_size)。两者都设为 2 是安全的,但若一个设 2、另一个设 4,人眼会困惑,CI 也可能因本地编辑器行为不一致导致意外 diff。
推荐配置:
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
-
.prettierrc里只保留 Prettier 真正能影响 AST 输出的项:semi、singleQuote、trailingComma、printWidth、tabWidth -
.editorconfig里定义indent_style、indent_size、end_of_line、trim_trailing_whitespace等编辑器级行为 - 不要在
.editorconfig里写charset = utf-8后又在.prettierrc里设encoding—— Prettier 不支持该字段,纯属冗余
Node.js 项目里 Prettier 不格式化 require() 或 module.exports 的原因
这是 Prettier 的设计限制:它不处理模块导入/导出语句的排序或分组,也不重排 require 顺序。如果你发现 require 块被跳过,不是配置问题,是工具能力边界。
可补救的实操点:
- 加
.prettierignore排除node_modules/和dist/,避免误触非源码文件 - 对
package.json这类 JSON 文件,Prettier 默认启用jsonRecursive,但需确保.prettierrc中没禁用parser选项 - 如果用了
__dirname或动态路径拼接,Prettier 不会重写字符串内容,只管结构——这是预期行为,不是 bug
团队协作时最容易被忽略的三件事
一是 .vscode/settings.json 里写了 editor.tabSize 或 editor.insertSpaces ——这些应该由 .editorconfig 控制,硬编码在 settings 里会导致 Git 污染和 IDE 差异;二是没把 .prettierrc 和 .editorconfig 提交到仓库,新人 clone 后直接靠插件默认值干活;三是 CI 流水线用 npx prettier --write,但本地开发用插件调用,Node 版本或 Prettier 版本不一致,导致格式化结果微小差异(比如空行数、括号换行位置)。
真正稳的做法:所有格式化动作统一走 CLI,VSCode 插件只作为快捷入口,不替代命令本身。










