Yarn PnP环境执行命令触发RangeError栈溢出,求助解决
解决Yarn Plug'n'Play工作区的「RangeError: Maximum call stack size exceeded」错误
问题背景
在搭建Yarn PnP工作区时,执行yarn dlx @yarnpkg/sdks vscode触发栈溢出错误,手动创建文件和sdks文件夹后暂时解决,但后续用yarn create react-app frontend --use-pnp创建React应用时再次报错,环境为Node v18.12.0、Yarn v3.3.1。
实用解决方案
1. 清理缓存重置工作区
栈溢出常和缓存异常有关,先彻底清理再重建:
- 清理Yarn缓存:
yarn cache clean - 删除项目根目录下的
.yarn/cache、.yarn/unplugged文件夹和yarn.lock文件 - 重新安装依赖:
yarn install
2. 强制重新生成VSCode SDK
手动创建目录后,用--force参数强制覆盖生成:
- 确保根目录下存在
.yarn/sdks文件夹(没有就手动创建) - 执行强制生成命令:
yarn dlx @yarnpkg/sdks vscode --force
3. 调整Node或Yarn版本
Node 18和Yarn 3.3.x的PnP逻辑存在兼容性问题,可尝试以下两种调整:
- 降级Node到v16.x LTS版本
- 升级Yarn到最新稳定版:
yarn set version stable
4. 绕开自动PnP创建React应用
如果--use-pnp参数一直报错,先创建普通项目再手动开启PnP:
- 创建不带PnP的React项目:
yarn create react-app frontend - 进入项目目录,启用PnP并重新安装:
cd frontend yarn config set nodeLinker pnp yarn install
验证
完成上述步骤后,重新执行之前报错的命令,确认是否正常运行。
内容的提问来源于stack exchange,提问作者Naveen Murali A V
相关产品推荐
相关产品推荐

