在 VS Code 中检测到无效的 Prettier 配置文件

tri*_*nge 5 javascript css visual-studio-code prettier

在 vmwareworkstation 17 pro 中启动了运行 xubuntu 的虚拟机。事先开始在 VS Code 中的 Odin 项目中进行练习,通过 sudo apt-get update 和 Upgrade 进行更新和升级。开始工作并注意到我的更漂亮的规则在保存时没有格式化。

出现以下错误:

["INFO" - 5:58:23 AM] Formatting completed in 6ms.
["INFO" - 5:58:30 AM] Formatting file:///home/t/repos/css-exercises/flex/03-flex-header-2/style.css
["ERROR" - 5:58:30 AM] Invalid prettier configuration file detected.
["ERROR" - 5:58:30 AM] No loader specified for extension ".prettierrc"
Error: No loader specified for extension ".prettierrc"
    at Explorer.getLoaderEntryForFile (/home/t/.vscode/extensions/esbenp.prettier-vscode-9.10.3/node_modules/prettier/third-party.js:8194:17)
    at Explorer.loadFileContent (/home/t/.vscode/extensions/esbenp.prettier-vscode-9.10.3/node_modules/prettier/third-party.js:8448:29)
    at Explorer.createCosmiconfigResult (/home/t/.vscode/extensions/esbenp.prettier-vscode-9.10.3/node_modules/prettier/third-party.js:8453:40)
    at runLoad (/home/t/.vscode/extensions/esbenp.prettier-vscode-9.10.3/node_modules/prettier/third-party.js:8464:37)
    at async cacheWrapper (/home/t/.vscode/extensions/esbenp.prettier-vscode-9.10.3/node_modules/prettier/third-party.js:8294:22)
    at async Promise.all (index 0)
    at async t.ModuleResolver.getResolvedConfig (/home/t/.vscode/extensions/esbenp.prettier-vscode-9.10.3/dist/extension.js:1:5693)
    at async t.default.format (/home/t/.vscode/extensions/esbenp.prettier-vscode-9.10.3/dist/extension.js:1:13308)
    at async t.PrettierEditProvider.provideEdits (/home/t/.vscode/extensions/esbenp.prettier-vscode-9.10.3/dist/extension.js:1:11417)
    at async B.provideDocumentFormattingEdits (/usr/share/code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:94:45902)
["ERROR" - 5:58:30 AM] Invalid prettier configuration file detected. See log for details.
Run Code Online (Sandbox Code Playgroud)

查看用户设置,格式化程序不正确,然后我将其切换为更漂亮的代码格式化程序。仍然没有任何作用。卸载并重新安装更漂亮,没有任何变化。尝试禁用并重新启用扩展。尝试打开和关闭更漂亮:使用编辑器配置,更漂亮:解析全局模块,更漂亮:需要配置。不用找了。

目前该文件位于 /home/t/repos/ 中,我还尝试复制并粘贴到项目目录中并添加到 VS Code 的工作区中。旁注,/repos 文件夹中也是 node_modules 目录。eslintrc.prettierrc 和 prettier.eslintrc 文件已正确命名并且保持完整。我尝试解决此问题的方法是通过 settings.JSON 将配置路径直接添加到 repos 目录中的文件。这是我当前的 settings.JSON 文件:

{
  "workbench.colorTheme": "Default Dark+",
  "editor.guides.bracketPairs": true,
  "workbench.iconTheme": "vscode-icons",
  "editor.linkedEditing": true,
  "security.workspace.trust.untrustedFiles": "open",
  "prettier.configPath": "/home/t/repos/eslintrc.prettierrc",

  "[javascript]": {
    "editor.formatOnSave": true,
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[typescript]": {
    "editor.formatOnSave": true,
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[css]": {
    "editor.formatOnSave": true,
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },

  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "gitlens.hovers.currentLine.over": "line",
  "liveServer.settings.donotShowInfoMsg": true,
  "liveServer.settings.AdvanceCustomBrowserCmdLine": "/opt/firefox/firefox",
  "editor.formatOnSave": true,
  "prettier.useEditorConfig": false
}

Run Code Online (Sandbox Code Playgroud)

我最初从哪里获得这些配置?直接来自本指南:https://vicvijayakumar.com/blog/eslint-airbnb-style-guide-prettier#4-install-the-airbnb-style-config-for-eslint-and-all-dependency

旁注:prettier:prettier 模块的 prettier 路径当前为空。插入文件路径不起作用,因为我相信这与节点模块相关?

请问有人对如何解决这种情况有任何建议吗?我已经尝试过我遇到的所有解决方案。非常感谢我能得到的任何帮助。

JΛY*_*ÐΞV 9

开始:

\n

了解"settings.json"您的配置很有帮助。您需要确保您的工作区".vscode/settings.json"文件和用户"settings.json"文件(路径取决于您运行的操作系统)都配置为协调工作,并且一个文件不会两次使用相同的配置覆盖另一个文件。

\n

第二

\n

删除您添加到“./settings.json”文件中的所有配置以使其更漂亮。这些设置是由扩展作者添加的。尽管esbenp.prettier-vscodePrettier 是 VS Code 的官方 Prettier 扩展,但 Prettier 从未打算通过 VS Code 的配置文件进行配置。"./.prettierrc"Prettier 对它的配置文件非常挑剔。当我们使用 VS Code 配置 ( "settings.json") 时,尝试使用扩展在某处生成的更漂亮的配置。如果您最终在某些项目工作区 vscode 配置中进行了设置(例如".vscode/settings.json"文件)中使用了设置,则每次加载更漂亮的设置时,扩展都会尝试重新生成文件。它甚至可能尝试加载多个,具体取决于 settings.json 文件的范围。它必须如何处理用户范围的 settings.json 文件应始终被工作区“settings.json”配置文件覆盖。更不用说更漂亮的配置通常在“.prettierrc”配置文件中包含自己的重写规则集。

\n
    \n
  • 注意:仅供参考,您使用的最有问题的配置是"prettier.configPath"设置。
  • \n
\n

我将停止陷入兔子洞,希望您能明白我的意思,即:不要使用 VS Codesettings.json配置文件来配置“Prettier”。

\n
\n

通过项目符号列表可以更容易地解释这一点

\n

以下内容将帮助您配置一个干净的环境,Prettier 将在其中像您配置的那样工作。

\n

开始...

\n
    \n
  1. ...删除您添加到所有文件中的所有 Prettier 设置settings.json。这包括您添加到项目“.vscode/settings.json”文件中的任何 Prettier 设置,尤其包括您添加到用户“settings.json”文件中的所有 Prettier 设置。完成后,通过完全关闭并重新打开 VS Code 来重新加载它。
  2. \n
\n
\n
\n
    \n
  1. 我不会从已打开的任何项目中删除所有更漂亮的配置文件,而是会要求您在重新打开 VS Code 时仅打开 VS Code 的一个实例。如果 VS Code 在重新启动后打开一个项目(也称为项目文件夹),您将需要关闭该项目而不打开另一个项目。为此,您可以... \n
      \n
    • 使用键绑定 ALT+K 后跟 keyF
    • \n
    • 或者,您可以使用标题栏菜单,如下所示: FILE \xc2\xa0>>\xc2\xa0 CLOSE FOLDER
    • \n
    \n
  2. \n
\n

此外,请确保所有选项卡也已关闭。

\n
\n
\n
    \n
  1. 此时,您的 VS Code 实例应该完全是空的,完全是空白的画布。从这里您将要创建一个新文件。去做这个...

    \n
      \n
    • 您有两种选择之一

      \n
        \n
      • (A) 您可以使用键绑定 CTRL+ ALT+ SUPER+N
      • \n
      • (B) 实现相同目的的另一种方法是使用标题栏菜单,如下所示: \xc2\xa0 FILE \xc2\xa0>>\xc2\xa0 NEW FILE
      • \n
      \n
    • \n
    • 提示 VS Code 创建新文件后,VS Code 会要求您选择创建文件的位置。位置并不重要,只要它位于一个完全空的文件中,其中没有其他内容即可。为了命名文件,VS Code 可能会使用通常称为快速输入菜单的下拉菜单。该文件必须是 JavaScript 文件,因此该文件必须以文件扩展名结尾".js"。所以我可以稍后引用该文件,我将调用我的文件"main.js",但是你可以调用你想要的任何文件,只要你知道当你阅读时我引用的是哪个文件"main.js"

      \n
    • \n
    • 在与 相同的文件夹中"main.js",再创建一个不带文件扩展名的新文件。该文件必须具有名称...

      \n
    • \n
    • .prettierrc

      \n
    • \n
    \n
  2. \n
\n

注意: “该文件的名称中的第一个字符是句点(或点)(这使其成为隐藏文件)。”

\n
\n
\n
    \n
  1. 将以下 prettier 配置添加到您刚刚创建的“.prettierrc”文件中。
  2. \n
\n
{\n  "trailingComma": "es5",\n  "tabWidth": 4,\n  "semi": true,\n  "singleQuote": true\n}\n
Run Code Online (Sandbox Code Playgroud)\n
\n
\n
    \n
  1. **执行以下命令"\n
      \n
    1. \n
       $ npm init\n
      Run Code Online (Sandbox Code Playgroud)\n
        \n
      • 该命令会询问一堆问题,只需按每个问题的 Enter 键即可使用默认的 npm/Node.js 配置快速配置环境。
      • \n
      • 这样做的目的只是为了创建一个有效的"package.json"文件。
      • \n
      \n
    2. \n
    3. \n
         $ sudo npm i -g prettier && npm i -D prettier\n\n   // Or you can execute it as two commands, like this:\n\n   $ sudo npm i -g prettier\n   $ npm i -D prettier\n
      Run Code Online (Sandbox Code Playgroud)\n
        \n
      • 该命令(或多个命令,具体取决于您输入它们的方式)将 prettier 安装为项目依赖项和全局 Node.js 包。
      • \n
      \n
    4. \n
    \n
  2. \n
\n

注意: “确保您已将 Prettier 安装为 vscode 扩展。并确保您只有一个 Prettier 扩展。拥有多个扩展可能会产生问题和混乱。您应该拥有的扩展应该具有扩展 ID esbenp.prettier-vscode

\n
\n
\n
    \n
  1. Prettier 现在应该可以工作了。使用main.js我们之前创建的文件编写一些 javascript,然后按F1打开快速输入,键入“格式化文档”一词,直到看到您"Format Document"要单击的选项。然后从菜单中选择更漂亮。如果您有错误的代码,Prettier 不会格式化,它需要没有错误。(如果你想修复错误,请使用像 ESLint 这样的 linter)。
  2. \n
\n

您可以添加一堆空行,或者将大括号放在错误的行上,省略分号,并且 prettier 应该格式化所有这些错误。

\n
\n
\n
\n