关于yarn pnpm 在corepack下报错

3,490 阅读2分钟

前言

给电脑回退到win10之后重装开发环境,装了最新版本的node,在使用包管理工具(除npm)时出现以下错误

  Internal Error: Error when performing the request
  at ClientRequest.<anonymous> (C:\Program Files\nodejs\node_modules\corepack\dist\corepack.js:3937:20)
  at ClientRequest.emit (node:events:390:28)
  at TLSSocket.socketErrorListener (node:_http_client:447:9)
  at TLSSocket.emit (node:events:390:28)
  at emitErrorNT (node:internal/streams/destroy:157:8)
  at emitErrorCloseNT (node:internal/streams/destroy:122:3)
  at processTicksAndRejections (node:internal/process/task_queues:83:21) 

大家可能注意到这个 corepack在报错路径中出现,是不是我配置出问题了呢。 显然不是,因为yarn 和 pnpm 官网上都有对应的配置,就是和这个 corepack 相关的

  • pnpm

image.png

  • yarn

image.png

都是按照官方的文档进行操作,但是都出现了上面的报错。

分析和原因推测

corepack是什么

corepack简单来说就是node自己构建的一个包管理工具,用来整合我们目前使用的npm yarn pnpm 等工具,它在16.9及以上的node中集成,当你打开了corepack之后,它会自动帮你配置好npm yarn pnpm三个包管理工具,也就无需自己再单独管理它们了。需要使用的时候可以直接在命令行中使用

原因推测

  1. 报错中有TSLsocket等字样,因为我有用梯子,可能与这个东西有关。但是我关掉梯子也会报错
  2. 之前开着梯子也没有问题 , 我认为是corepack的问题
  3. 也有可能corepack配置更新,但是我不知道

解决方案

解决不了corepack,那我就不用它了。 将node的版本回退到 16.9之前,然后通过自己安装的方式来安装包管理工具

image.png

可以解决问题 如果大家有知道报错的具体原因,欢迎分享。