如何针对特定语言配置Prettier:VSCode下仅禁用HTML的Prettier格式化
问题解答
问题1:是否可以使用.prettierignore,是否会禁用VSCode默认HTML格式化工具
可以在根目录使用.prettierignore文件,且使用后不会禁用VSCode的默认HTML格式化工具。
.prettierignore的作用仅为告知Prettier扩展跳过对指定文件的处理,和VSCode本身的格式化能力完全独立。你只需在.prettierignore中添加*.html规则,就可以让Prettier忽略所有HTML文件,同时VSCode自带的HTML格式化功能可以正常运行,和你之前的理解不符。
问题2:现有配置是否正确,有无更优方案
你当前编写的.prettierrc配置是错误的。editor.defaultFormatter属于VSCode编辑器的配置项,不属于Prettier本身的配置规则,写在.prettierrc文件中不会生效,这类编辑器配置应该存放于项目根目录的.vscode/settings.json文件中。
更优的实现方案可根据你的需求选择:
- 方案1:使用项目级VSCode配置。在项目根目录新建
.vscode/settings.json,写入你之前的配置内容:
{ "editor.defaultFormatter": "esbenp.prettier-vscode", "[html]": { "editor.defaultFormatter": null } }
该方案仅作用于当前项目,不会修改你全局的VSCode配置,同时完全符合你「仅HTML不用Prettier格式化」的需求。
- 方案2:使用.prettierignore配置。直接在.prettierignore中添加
*.html规则即可,无需修改其他配置,该方案的优势是通用性更强,就算切换编辑器,Prettier对HTML文件的忽略规则仍然生效。 - 方案3:调整Prettier的HTML格式化规则。如果你只是不想Prettier无意义拆分HTML属性,不需要完全禁用HTML的Prettier格式化,可以在.prettierrc中添加以下配置:
{ "printWidth": 200, "singleAttributePerLine": false }
调大printWidth可以减少属性换行的触发条件,关闭singleAttributePerLine可以禁止单属性占一行的规则,保留Prettier格式化HTML的能力的同时解决属性乱换行的问题。
内容的提问来源于stack exchange,提问作者Tanvir
相关产品推荐
相关产品推荐

