VSCode中Prettier格式化合法Handlebars/HTML代码报错如何解决
可行格式化方案
- 替换格式化工具为djLint
djLint对Handlebars语法的兼容性远高于当前版本Prettier,原生支持标签内嵌套{{#if}}这类块级指令的写法,不会抛出语法错误。
VSCode配置步骤:- 本地安装djLint依赖:
pip install djlint - VSCode插件市场搜索安装djLint官方插件
- 在编辑器设置中指定Handlebars类型文件的默认格式化工具:
可在项目根目录新增"[handlebars]": { "editor.defaultFormatter": "monosans.djlint" }.djlintrc配置文件,自定义缩进长度、换行规则等格式化规则。 - 本地安装djLint依赖:
- 调整模板写法兼容Prettier
不需要更换工具的前提下,可把块级条件改写成内联if助手的写法,符合Glimmer解析规则,Prettier可正常格式化:
带默认值、字符串拼接的属性也可以用相同写法实现:<div onclick={{if myOnclick myOnclick}} > Click me! </div><div class="base-btn {{if isActive 'active' 'disabled'}}" > Click me! </div> - 局部跳过Prettier格式化
仅个别文件存在这类写法的话,给对应代码块加上Prettier忽略注释即可:{{! prettier-ignore }} <div {{#if myOnclick}} onclick="{{myOnclick}}" {{/if}} > Click me! </div>
内容的提问来源于stack exchange,提问作者mgurzixo
相关产品推荐
相关产品推荐

