VSCode搭配Yarn PnP时找不到prettier模块,扩展无法正常工作
解决Yarn 2+/Berry/Yarn 4 PnP模式下VSCode无法解析prettier/eslint的问题
安装Yarn SDK for VSCode插件
PnP的模块解析逻辑和传统node_modules完全不同,VSCode默认无法识别。安装这个插件后,它会自动适配Yarn的PnP模块路径规则,让编辑器能找到prettier、eslint这类依赖。安装完成后务必重启VSCode。生成VSCode专用的Yarn SDK
在项目根目录执行命令:yarn dlx @yarnpkg/sdks vscode这个命令会在项目的
.yarn/sdks目录下生成适配VSCode的工具配置,包括TypeScript、ESLint、Prettier的路径映射。执行完毕后,VSCode会弹出提示让你选择TypeScript版本,直接选Workspace Version即可。调整VSCode扩展的路径配置
打开VSCode设置(快捷键Ctrl+,),分别搜索以下设置并修改:eslint.nodePath:设置为.yarn/sdks/nodeprettier.nodePath:设置为.yarn/sdks/node
确保扩展能通过Yarn提供的SDK找到对应的依赖模块。
确认项目的PnP配置
检查项目根目录的.yarnrc.yml文件,确保存在以下配置:nodeLinker: pnp如果是从传统node_modules模式切换到PnP的,记得删除旧的
node_modules文件夹和package-lock.json,然后重新执行yarn install。彻底重启VSCode验证
完全关闭VSCode(包括后台运行的进程),重新打开项目后,尝试格式化代码或运行ESLint,确认Error: Cannot find module 'prettier'这类报错是否消失。
内容的提问来源于stack exchange,提问作者Matt
相关产品推荐
相关产品推荐

