如何通过Prettier配置实现Eclipse Java风格的VSCode JS代码格式化?
问题:如何通过Prettier配置实现自定义代码格式?
我原本的JavaScript代码格式如下:
subRedirect() { let features = this.config.get('features') if (features !== null) { features.forEach(feature => { this.composeWith(require.resolve("../" + feature.type.toLowerCase())) }) } }
使用Prettier在VSCode中保存后,代码被格式化为:
subRedirect() { let features = this.config.get("features"); if (features !== null) { features.forEach((feature) => { this.composeWith(require.resolve("../" + feature.type.toLowerCase())); }); } }
请问能否通过Prettier配置文件实现第一种代码格式?我试过多款VSCode扩展,但都对JavaScript无效。
解决方案
可以通过修改Prettier配置文件来匹配你想要的代码格式,针对两者的差异,对应配置项如下:
- 缩进设置:原始代码用8空格缩进,Prettier默认是2空格,需配置
tabWidth: 8 - 箭头函数参数:原始单个参数时不加括号,Prettier默认添加,需配置
arrowParens: "avoid" - 语句分号:原始代码不加分号,Prettier默认添加,需配置
semi: false - 引号类型:原始用单引号,Prettier可能自动转双引号,需配置
singleQuote: true - 空行处理:Prettier会合并连续空行,若要保留单个空行,确保代码中只留单行空行即可;如果需要避免代码自动换行,可设置较大的
printWidth值
在项目根目录创建或修改.prettierrc.json配置文件,内容如下:
{ "tabWidth": 8, "arrowParens": "avoid", "semi": false, "singleQuote": true, "printWidth": 120 }
配置完成后,在VSCode中确认以下设置:
- 打开设置(快捷键
Ctrl+,) - 搜索
Default Formatter,选择esbenp.prettier-vscode - 开启
Format On Save选项,确保保存时自动应用配置
如果需要保留某些Prettier默认会调整的空行(比如函数开头的空行),可以在对应位置添加// prettier-ignore注释跳过格式化。
内容的提问来源于stack exchange,提问作者Mahmoud Elkafrawy
相关产品推荐
相关产品推荐

