Prettier 3.0.0 TypeError:prettier.resolveConfig.sync 不是函数

Ste*_*aya 136 eslint prettier

我运行此命令后触发了错误:

npx eslint "the code directory"
Run Code Online (Sandbox Code Playgroud)

这是错误的前几行

TypeError: prettier.resolveConfig.sync is not a function
Occurred while linting *the first line of the first code directory*  
Rule: "prettier/prettier"
    at Program (*the main directory*\node_modules\eslint-plugin-prettier\eslint-plugin-prettier.js:138:40)
Run Code Online (Sandbox Code Playgroud)

这些是 eslint、prettier 和来自 package.json 的其他配置

"eslint": "^8.42.0",
"eslint-config-prettier": "^8.8.0",
"eslint-plugin-cypress": "^2.13.3",
"eslint-plugin-prettier": "^4.2.1",
"prettier": "3.0.0",
"prettier-eslint": "^15.0.1"
Run Code Online (Sandbox Code Playgroud)

我尝试从 node_modules 中删除文件并运行“npm i”,然后重新启动 IDE(使用 VS Code),它仍然发生。

Jos*_*rdt 222

prettier3 和4之间存在不兼容性eslint-plugin-prettier

您可以使用以下版本 5 来修复此问题eslint-plugin-prettier

yarn add -D eslint-plugin-prettier@5.0.0
Run Code Online (Sandbox Code Playgroud)

或者

npm install --save-dev eslint-plugin-prettier@5.0.0
Run Code Online (Sandbox Code Playgroud)

  • 使用 eslint-plugin-prettier alpha 和 prettier ^3.0.0 会破坏 prettier 的格式化功能。如果我们在“Format document with...”部分看到,列出了很多 ESLint。Option + Shift + F 也不起作用。恢复到 eslint-plugin-prettier ^4.2.1 和 prettier ^2.8.8 使格式化再次工作。 (4认同)
  • 版本 5 不再是 alpha 版本!=) (3认同)

dhi*_*ilt 43

pretty-quick就我而言,该问题与我用于预提交格式化的工具有关。当前版本(pretty-quick v3.1.3)与 prettier v3 不兼容,他们的存储库中存在问题(链接)。由于 Pretty-quick 的最后一次更新是在 2 年前进行的,因此我决定切换到lint-staged与 Prettier v3 兼容并且似乎更活跃/可维护的版本(最后一个版本是在 1 周前发布的)。转换非常简单,只需遵循自述文档即可: https: //github.com/okonet/lint-staged


小智 18

我通过将 Prettier 降级到版本 2.8.8 解决了这个问题


Bas*_*sem 16

降级时,prettier@^2.8.0您必须安装eslint-plugin-prettier@^4.0.0prettier 和 eslint 才能工作


maw*_*urn 6

解决我的问题更简单,而且这个错误是一个转移注意力的错误。

我包含了所有 eslint 插件,但忘记实际包含 prettier 本身。

yarn add -D prettier
Run Code Online (Sandbox Code Playgroud)

新项目管理

npm i -D prettier
Run Code Online (Sandbox Code Playgroud)

希望这可以在其他人陷入困境之前对其有所帮助。幸亏我很快就意识到了。


Cri*_*alu 6

就我而言,我正在更新"eslint-plugin-prettier": "4.0""5.0"但没有更新prettier