Prettier 3.0.0 TypeError: prettier.resolveConfig.sync is not a function
回答 5
浏览 1.5万
2023-07-06
我运行此命令后触发了错误:
npx eslint "the code directory"
这是错误的前几行
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)
这些是 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"
我尝试从 node_modules 中删除文件并运行“npm i”,然后重新启动 IDE(使用 VS Code),它仍然发生。
随着 Prettier v3 的发布,resolveConfig 功能被删除: github.com/prettier/prettier/pull/ 12788 - 这是一个重大更改,因此依赖此功能的工具也需要升级。解决方法:降级到 Prettier v2。
- Benny Code 2023-07-24
5 个回答
#1楼
已采纳
得票数 108
prettier
3 和eslint-plugin-prettier
4 之间不兼容。
您可以使用 eslint-plugin-prettier
版本 5 来修复此问题:
yarn add -D eslint-plugin-prettier@5.0.0
或者
npm install --save-dev eslint-plugin-prettier@5.0.0
它有效,谢谢
- Stephen Senjaya 2023-07-06
使用 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 使格式化再次工作。
- Jeaf Gilbert 2023-07-10
版本 5 不再是 alpha 版本! =)
- Breno Mazieiro 2023-07-11
有效,谢谢!或
pnpm add -D eslint-plugin-prettier@latest --save-exact
- elbik 2023-07-11
#2楼
得票数 12
就我而言,该问题与我用于预提交格式化的 pretty-quick
工具有关。当前版本 (pretty-quick v3.1.3) 与 prettier v3 不兼容,他们的存储库中存在问题 (链接)。由于 Pretty-quick 的最后一次更新是在 2 年前,我决定切换到 lint-staged
,它与 Prettier v3 兼容,并且似乎更活跃/可维护(最后一个版本是 1 周前发布的)。转换非常简单,只需遵循自述文件即可: https://github.com/okonet/lint-staged 。
#3楼
得票数 12
我通过将 Prettier 降级到版本 2.8.8 解决了这个问题
#4楼
得票数 5
降级到 prettier@^2.8.0
时,您必须安装 eslint-plugin-prettier@^4.0.0
才能使 prettier 和 eslint 正常工作
#5楼
得票数 3
解决我的问题更简单,而且这个错误是一个转移注意力的错误。
我包含了所有 eslint 插件,但忘记实际包含 prettier 本身。
yarn
yarn add -D prettier
npm
npm install --save-dev prettier
希望这可以在其他人陷入困境之前对其有所帮助。幸亏我很快就意识到了。