vs code 中 prettier 对 .js 文件不自动格式化,因默认由内置 typescript 插件处理;需在 .vscode/settings.json 中为 [javascript] 显式启用 "editor.formatonsave": true,并确保安装本地 prettier 包、配置正确且无语法错误。

为什么装了插件但保存不格式化
VS Code 默认用内置的 vscode.typescript-language-features 处理 .js 文件,Prettier 插件不会自动接管。右下角状态栏显示 ESLint 或 None 就说明它根本没被调用。
- 必须在项目根目录的
.vscode/settings.json中为[javascript]显式开启保存触发:"[javascript]": {"editor.formatOnSave": true} -
editor.formatOnSave写在顶层设置里对.js文件无效,只对未指定语言的文件起作用(几乎不存在) - 扩展 ID 必须是
esbenp.prettier-vscode,写成prettier、prettier-vscode或漏掉-vscode都会静默失败
本地 prettier 包是硬性依赖
Prettier 插件本身不含 CLI,它只是调度器,真正干活的是你项目里装的 prettier 包。没装包会报错 Failed to load module 'prettier',且格式化直接跳过。
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
- 在项目根目录运行:
npm install --save-dev prettier(推荐)或yarn add -D prettier - 避免全局安装:
npm install -g prettier在 macOS + nvm 或 Windows 权限受限环境下常找不到可执行路径 - 若用 pnpm 或 yarn v4+,插件可能读不到本地包,加配置项:
"prettier.prettierPath": "./node_modules/prettier/index.cjs"
配置文件必须存在且语法正确
没有 .prettierrc 或 prettier.config.js,Prettier 会回退到默认规则(如 semi: true),和 Node.js 社区主流风格(无分号、单引号)冲突。
- 推荐用
.prettierrc.json,内容保持标准 JSON 格式,例如:{"semi": false,"singleQuote": true,"trailingComma": "all","printWidth": 100} - 别放错位置:VS Code 不会向上查找父目录的配置,子项目必须自己放一份
- ESM 项目中若用
.prettierrc.cjs,必须用module.exports = {};纯 ESM("type": "module")则用.prettierrc.js并export default {} - 一个多余的逗号或导出方式错,会导致配置静默失效——你改了却看不到效果
Node.js 场景下容易被忽略的细节
Node.js 项目常用 ESM、长链式调用、fs.promises 等特性,Prettier 默认行为并不适配这些场景。
-
"printWidth": 100比默认80更适合 Node.js 的链式调用,避免无谓换行 -
"trailingComma": "all"提升git diff可读性,尤其在对象/数组频繁增删字段时 - 必须加
.prettierignore,至少排除node_modules/和dist/,否则格式化整个依赖树会卡死 - 若同时启用 ESLint,务必安装
eslint-config-prettier并在.eslintrc.js的extends数组末尾加上"prettier",否则分号、引号会反复被来回修改
.vscode/settings.json 里没写 [javascript] 块、.prettierrc.json 里多了一个逗号,任何一个都会让自动格式化彻底失能。










