Visual studio code 禁止Prettier在VS代码中格式化HTML文件中的内联JS

Visual studio code 禁止Prettier在VS代码中格式化HTML文件中的内联JS,visual-studio-code,vscode-settings,prettier,prettier-eslint,Visual Studio Code,Vscode Settings,Prettier,Prettier Eslint,我正在使用ESLint config Prettier和ESLint插件Prettier包通过ESLint运行Prettier。我还可以在非JS文件上使用Pretter作为开发人员依赖项。我将这两个扩展与VS代码一起使用,在save:and时自动验证和格式化代码 我对HTML文件中的内联JS有问题。尽管在我的配置文件中,我已经明确地将选项html.format.contentUnformatted设置为“pre,code,textarea,script”,以防止使用默认格式化程序格式化该内容,但

我正在使用
ESLint config Prettier
ESLint插件Prettier
包通过ESLint运行Prettier。我还可以在非JS文件上使用Pretter作为开发人员依赖项。我将这两个扩展与VS代码一起使用,在save:and时自动验证和格式化代码

我对HTML文件中的内联JS有问题。尽管在我的配置文件中,我已经明确地将选项
html.format.contentUnformatted
设置为
“pre,code,textarea,script”
,以防止使用默认格式化程序格式化该内容,但通过ESLint运行的Prettier要么没有运行,要么被常规Prettier扩展名否决。我希望它忽略
script
标记中的内容,因为ESLint应该在那里处理格式

my
settings.json中的相关设置:

{
“javascript.validate.enable”:false,//关闭默认与代码验证,我使用的是ESLint的
“javascript.format.enable”:false,//^见上文
“editor.formatOnSave”:true,//为除JS/JSX之外的所有文件启用格式设置
“[javascript]”:{
“editor.formatOnSave”:false
},
“[javascriptreact]”:{
“editor.formatOnSave”:false
},
“eslint.alwaysShowStatus”:正确,
“editor.codeActionsOnSave”:{
“source.fixAll”:true//让ESLint在保存时修复所有可修复的错误
},
“eslint.run”:“onSave”//保存时运行eslint
//关闭Prettier for JS,因为我们已经通过Eslint完成了
“prettier.disableLanguages”:[“javascript”,“javascriptreact”],
“html.validate.scripts”:false,//关闭html文件中的默认VSCode JS验证
“editor.defaultFormatter”:“esbenp.prettier vscode”,//使用prettier格式化程序
“html.format.contentUnformatted”:“pre、code、textarea、script”//不格式化这些标记中的内容
}

知道怎么了吗?我也乐于接受其他方式的建议。谢谢你的帮助

您可以使用Prettier的
embeddedLanguageFormatting
选项来实现您想要的功能。看


至于
html.format.*
VS-code设置,它们是VS-code的内置格式化程序的设置,与Prettier无关。

Ah,这说明
html.format.*
只能与内置格式化程序一起使用。我尝试了
“prettier.embeddedLanguageFormatting”:“off”
,但不幸的是,它没有成功。更好的处理方法是在所有JS上同时运行ESLint和Prettier的格式化程序,并在ESLint中禁用冲突规则吗?也许您只需要重新启动VS代码?“在所有JS上同时运行ESLint和Prettier的格式化程序,并在ESLint中禁用冲突规则”-这是Prettier网站上推荐的方法:它看起来不像
embeddedLanguageFormatting
解决了这个问题。它似乎是用于字符串中的代码。该选项在JS中绝对控制HTML。自己试一试(单击左下角的“显示选项”按钮,然后选择
html
解析器,然后切换
embeddedLanguageFormatting
以比较结果)。