VSCode Prettier 扩展 vs 命令行 Prettier

Posted

技术标签:

【中文标题】VSCode Prettier 扩展 vs 命令行 Prettier【英文标题】:VSCode Prettier Extension vs Command Line Prettier 【发布时间】:2019-07-09 00:35:16 【问题描述】:

我有一个问题,即 VSCode 中的 html 文件格式“on-save”与使用命令行时 Prettier 的格式不同。

我的用户设置(更改这些值似乎没有任何区别):


    "[html]": 
        "editor.formatOnSave": true
    ,
    "prettier.eslintIntegration": false,
    "html.format.enable": false

当我从命令行运行 Prettier 时,我的 HTML 格式如下:

prettier --write "./src/app/my-file.html"

我的文件.html:

<a ng-hide="$last" href="" ng-click="doThis(thing)"
  > crumb.title </a
>

我在 VSCode 中保存文件时的相同代码(允许 Prettier 扩展进行格式化):

<a ng-hide="$last" href="" ng-click="doThis(thing)">
  crumb.title
</a>

我知道扩展程序已安装并且可以正常工作,因为我在屏幕右下方看到了这个图标:

而且,当我将鼠标悬停在此图标上时,我看到一个工具提示,上面写着 prettier@1.16.3,与我在命令行上安装的相同版本 prettier -v

为什么我用这两种方法得到不同的结果?除了上述之外,我没有更改任何设置

【问题讨论】:

【参考方案1】:

我需要创建一个包含以下内容的.prettierrc 文件:


  "overrides": [
    
      "files": "*.html",
      "options": 
        "parser": "html"
      
    
  ]

命令行使用 html 解析器,而 VSCode 使用 angular 解析器。这样一来,他们都对.html 文件使用相同的解析器。

【讨论】:

祝福你找到这个!这几天我一直在抨击这个问题。我的prettier --check .prettier --write . 与插件冲突。 感谢您抽出宝贵时间回答您自己的问题,这很有帮助!

以上是关于VSCode Prettier 扩展 vs 命令行 Prettier的主要内容,如果未能解决你的问题,请参考以下文章

如何使 prettier 成为 vs 代码中的默认格式化程序?

VS代码/w。在 TypeScript Monorepo 中更漂亮

VSCode 的 format-on-save 设置与 prettier 冲突

VS Code + Prettier 不使用 printWidth 设置?

VS Code:Prettier 将段落文本拆分为多行

如何使更漂亮的(php)与 VS Code 一起工作