【问题标题】:Format JS & HTML with prettier用更漂亮的方式格式化 JS 和 HTML
【发布时间】:2022-01-11 09:08:46
【问题描述】:

我无法将 prettier 配置为仅格式化我的 html 和 js 代码,我不知道在我的配置中还可以添加什么。


我目前在VS Code中配备的Prettier扩展的ID是:esbenp.prettier-vscode,我的settings.json文件配置如下:

   "editor.defaultFormatter": null,
    "[html]": {
        "editor.defaultFormatter": "vscode.html-language-features"
    },
    "[javascript]": {
        "editor.defaultFormatter": "vscode.html-language-features"
    },
    "editor.formatOnSave": true,
    // "editor.defaultFormatter": "esbenp.prettier-vscode",
    "prettier.arrowParens": "avoid",
    "prettier.jsxBracketSameLine": true,
    "prettier.bracketSpacing": true,
    "prettier.embeddedLanguageFormatting": "auto",
    "prettier.htmlWhitespaceSensitivity": "css",
    "prettier.insertPragma": false,
    "prettier.jsxSingleQuote": true,
    "prettier.printWidth": 100,
    "prettier.proseWrap": "preserve",
    "prettier.quoteProps": "as-needed",
    "prettier.requirePragma": false,
    "prettier.semi": true,
    "prettier.singleQuote": false,
    "prettier.tabWidth": 2,
    "prettier.trailingComma": "es5",
    "prettier.useTabs": true,
    "prettier.vueIndentScriptAndStyle": false,

我这样说是因为我有另一个 PHP 格式化程序,现在 Prettier 只格式化 HTML 代码而不是 JS

【问题讨论】:

    标签: visual-studio-code prettier


    【解决方案1】:

    编辑 - 12 月 7 日


    我没有太多时间注册护士,这是期末考试,我 36 岁,负担不起额外的一学期课程。我已经是 5 个班级中 4 个中年龄最大的人,您似乎没有听从您来寻求帮助的人或在这种情况下的人的意见,这非常令人沮丧。

    好吧,伙计,你知道精神错乱的定义是什么吗?当你做某事时,期待某个结果,但你没有得到那个结果,相反,你不想发生的事情一直在发生。精神错乱的人不会停止或尝试不同的事情,而是会继续做同样的事情,得到同样的结果,但继续期待其他事情发生。

    仅供参考,这就是你的所作所为,请为了你自己的好人,停止它!你快把我逼疯了。配置

    {
        "[html]": {"editor.defaultFormatter": "vscode.html-language-features"}
    }
    
    

           ...与更漂亮绝对无关。它正在配置您的编辑器以使用 V.S.格式化您的 HTML 的代码,我们已经解决了这个问题。

         这不会解决你的问题,不会影响更漂亮,绝对没有理由继续尝试。当您使用该设置时,您一直在问为什么prettier 有效,我已经告诉过您两次,因为它正在配置 V.S.使用开箱即用的工具的代码。假设您安装了正确的扩展程序,您必须使用以下设置才能更好地工作。

    // This is the Visual Studio Marketplace I.D. for the Official Prettier Extension. Use this, not the HTML Language Feature formatter, otherwise, your not working with prettier.
    
    "esbenp.prettier-vscode" 
    
    

    摆脱 HTML 语言设置,好吗?

    事实上,您正在到处添加默认格式化程序设置。要解决此问题,您需要检查您的 settings.json 文件(您的工作区 settings.json 文件和您的用户 settings.json 文件)如果您不确定两者是否同步,您将得到不希望的结果。你需要有条理。当你浏览你的配置文件时,删除你为更漂亮而添加的每个设置。您不应该在 settings.json 文件中配置 Prettier,而是使用 .prettierrc 文件(文件名的语义与您在文件名中看到的完全相同:.prettierrc,没有扩展名,并且您想要在前面加一个点)。

    .prettierrc 文件放在项目的根目录中。正如我已经说过的,从你的settings.json 文件中删除每一个格式设置,即使是那些与更漂亮有关的设置,(或者最好说“尤其是那些与更漂亮有关的”)。老实说,当您进行更漂亮的故障排除时,您可能只想从头开始,彻底清除您的 settings.json 文件,这样最好。

    您遇到了这样的困难,您甚至可能只想从一个干净的项目开始,只添加一个 HTML 文件和一个 .prettierrc 文件。

    然后在.prettierrc 配置文件中添加如下代码:
    {
      "trailingComma": "es5",
      "tabWidth": 4,
      "semi": false,
      "singleQuote": true
    }
    
    

    然后测试 prettier 的格式是否正确。如果 prettier 的格式不正确,此时您可以尝试两件事。一种是,您可以尝试通过在指向项目根目录的终端中输入这两个命令来为您的项目添加一个更漂亮的可执行文件。

    $> npm init
    
    

    在那个命令之后,你做什么都没关系,只要输入什么来获取一个 package.json 文件到你的项目中。

    然后输入...

    $> npm i -DE prettier
    

    更漂亮的扩展程序将使用该扩展程序来格式化您的项目,我曾多次让人们这样做,并且它为他们提供了更漂亮的工作,以前没有。

    如果 prettier 仍然无法正常工作,那么您需要在 VS Code 中打开设置,不要使用您的 settings.json 文件,因为我们试图将其保持为空,记得吗?

    CTRL + 打开设置,然后通过设置启用Prettier Debug Logs以下配置为真:

    
    "prettier.enableDebugLogs": true
    
    

    然后打开终端面板,但不是使用终端,而是点击面板顶部的 OUTPUT 选项,然后在右侧的下拉菜单中选择 @ 987654341@ 来自菜单。这将告诉您每次 prettier 尝试格式化时发生的情况。

    如果您仍然卡住,请到这里,您已经开始调试/故障排除 prettier,并告诉我当您尝试使用 prettier 进行格式化时输出控制台显示的内容,我可以为您提供进一步的帮助。



    编辑结束






    设置默认值。


    您正在配置 VS Code 以使用 VS-Code “开箱即用”附带的默认格式化程序。要将 VSCode 配置为使用 Official Prettier Extension,您需要将以下配置添加到您的用户 settings.json 文件中。

    
    // Your user "settings.json" file
    
    {
        "[javascript]": {
            "editor.defaultFormatter": "esbenp.prettier-vscode"
        },
    
        "[HTML]": {
            "editor.defaultFormatter": "esbenp.prettier-vscode"
        },
    
        "[PHP]": {
            "editor.defaultFormatter": "/* add your PHP formatter here */",
        },
    
        "editor.defaultFormatter":""
    }
    
    


    此外,您需要始终确保工作区“.vscode/settings.json”文件夹中的 settings.json 文件不会覆盖您的用户“settings.json”文件夹。

    如果您使用 WSL,您需要确保您的 WSL settings.json 文件没有覆盖您的用户设置文件 @C:\Users\${WINDOWS_USER_NAME}\AppData\Roaming\Code\User\settings.json


    注意:以上是用户settings.json文件在windows上的路径,显然不能和俗气的MacOS/OSX平台一样。


    另一个可能有助于使情况更易于管理的提示是不要在 V.S. 中配置 Prettier 的格式规则。代码设置文件,而是使用更合适且使用广泛的.prettierrc 文件。如果您有存储库,请将.prettierrcignore 文件结合。保持您的配置井井有条,使您的故障排除环境更整洁、更有条理,并增加您更快找到问题解决方案的几率。

    You can find out how to use .prettierrc here, so you can remove all of the configuration rules out of your settings.json file.他们真的不属于那里。

    【讨论】:

    • 如果我将"[html]": { "editor.defaultFormatter": "vscode.html-language-features" } 更改为"editor.defaultFormatter": "esbenp.prettier-vscode"},请不要将格式设置为html。我不明白原因
    • 您的 HTML 正在被 V.S. 格式化。代码,不是更漂亮。当您将 HTML 默认格式化程序设置设置为 vscode.html-language-features 时,您是在告诉 V.S.使用“开箱即用”附带的工具来格式化文档的代码,因此,无论哪种方式,prettier 都不起作用,只有默认的 VS Code 格式化程序起作用。如果您试图让Prettier 工作,请停止使用"editor.defaultFormatter": "vscode.html-language-features" 配置,因为它是不同的格式化程序,与 prettier 没有任何关系
    • 好的,我在答案中发布了如何调试更漂亮的。那里有很多信息,如果您知识渊博,或者足够勤奋以变得知识渊博,就会有一条清晰的前进道路。
    猜你喜欢
    • 2019-06-07
    • 1970-01-01
    • 2020-04-28
    • 1970-01-01
    • 2016-02-25
    • 2020-11-02
    • 1970-01-01
    • 1970-01-01
    • 2023-02-19
    相关资源
    最近更新 更多