使用Yarn PnP策略搭建Node项目遇模块找不到错误求助
解决Yarn 3项目中Node无法找到模块的问题
快速解决方法
方式1:通过Yarn执行代码
不要直接用node命令启动,改用Yarn提供的命令:
# 调用package.json里的start脚本 yarn start # 或者直接运行目标文件 yarn node ./src/app.js
方式2:切换回传统node_modules模式
如果偏好直接用node命令运行,可以修改Yarn配置,关闭默认的PnP模式:
- 在项目根目录执行:
yarn config set nodeLinker node-modules
- 重新安装依赖:
yarn install
之后就能正常用node ./src/app.js启动项目了
问题原因
Yarn 3(Berry)默认启用Plug'n'Play (PnP) 机制,这种模式不会在项目目录生成node_modules文件夹,依赖的路径管理由Yarn自身的解析器处理。Node.js的原生模块加载器无法识别PnP的依赖结构,所以直接用node命令运行时会出现ERR_MODULE_NOT_FOUND错误。
而yarn node会自动加载Yarn的PnP解析器,让Node能正确定位到依赖包;通过yarn start执行脚本时,也会在Yarn的环境中运行,自然能处理依赖解析。
内容的提问来源于stack exchange,提问作者yar
相关产品推荐
相关产品推荐

