使用Yarn Berry PNP时运行next lint/eslint遇synckit解析错误如何解决?
解决Yarn Berry PNP模式下ESLint的synckit依赖错误
可行解决方案:
- 先从错误日志里定位synckit试图访问的具体包名,将该包显式添加为项目开发依赖:
yarn add -D [目标包名] - 通过Yarn的
packageExtensions强制声明synckit的隐式依赖,在项目根目录的.yarnrc.yml中添加配置:packageExtensions: "synckit@*": dependencies: # 替换为错误日志中提到的包名,比如@typescript-eslint/parser "@typescript-eslint/parser": "*" - 升级相关ESLint插件到最新版本,规避版本兼容问题:
yarn upgrade -D simple-import-sort unused-imports @typescript-eslint/eslint-plugin @typescript-eslint/parser - 清除Yarn缓存并重新安装依赖,确保PNP依赖链路解析正确:
yarn cache clean && yarn install
补充说明:
CI环境未触发错误,大概率是因为CI可能采用了nodeLinker: node-modules模式(而非默认的PNP),或是CI的依赖安装逻辑未启用PNP的严格隔离检查,而本地启用了严格的PNP机制,才会暴露隐式依赖问题。
内容的提问来源于stack exchange,提问作者Hyesung Oh
相关产品推荐
相关产品推荐

