VS Code中如何调整Prettier对Promise代码的格式化样式?
在VS Code中保留Prettier并调整Promise格式化样式的方法
可以实现,但需要结合Prettier配置和ESLint规则微调——Prettier本身属于「固执型」格式化工具,默认规则不会完全适配所有自定义需求,具体操作如下:
1. 调整Prettier核心配置
在项目根目录的.prettierrc或.prettierrc.json中添加以下配置,让链式调用的换行逻辑更贴近需求:
{ "printWidth": 80, "singleQuote": true, "trailingComma": "es5", "arrowParens": "always", "indentChain": true }
indentChain:开启链式调用的缩进(部分Prettier版本支持,若不生效可跳过)printWidth:设置较小的换行阈值,让Prettier更容易在链式调用处触发换行
2. 用ESLint强制链式调用换行
若Prettier自身配置无法满足强制换行需求,可通过ESLint补充规则:
- 安装依赖:
npm install eslint eslint-plugin-prettier eslint-config-prettier --save-dev
- 在项目根目录创建
.eslintrc.json,配置如下:
{ "extends": ["plugin:prettier/recommended"], "rules": { "newline-per-chained-call": ["error", { "ignoreChainWithDepth": 2 }] } }
newline-per-chained-call:强制每个链式调用方法单独占一行,ignoreChainWithDepth可调整忽略的链式深度plugin:prettier/recommended:让ESLint与Prettier协同工作,避免规则冲突
3. 调整箭头函数内的代码格式
针对你期望的「箭头函数内代码不换行」需求,可在ESLint规则中添加:
"rules": { // ...其他规则 "arrow-body-style": ["error", "as-needed", { "requireReturnForObjectLiteral": false }] }
这条规则会让箭头函数在内容较短时不自动换行;若内容过长,Prettier仍会按可读性优先的规则换行,需根据实际场景权衡使用。
4. VS Code中启用自动修复
在VS Code的settings.json中添加配置,确保保存时自动应用Prettier和ESLint规则:
{ "editor.codeActionsOnSave": { "source.fixAll.eslint": true }, "prettier.requireConfig": true }
注意:完全匹配你给出的示例格式可能存在难度——Prettier会优先保证代码可读性和自身规则一致性,但通过上述配置可无限接近你的需求。
内容的提问来源于stack exchange,提问作者Regis Freitas
相关产品推荐
相关产品推荐

