安装create-react-app报TypeError: Class extends undefined错误如何解决?
完整报错信息:
TypeError: Class extends value undefined is not a constructor or null
at Object. (C:\Users\Dell\AppData\Roaming\nvm\v10.19.0\node_modules\npm\node_modules\socks-proxy-agent\dist\agent.js:114:44)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.
该错误由Node.js版本和依赖包版本不兼容导致:你当前使用的Node.js v10.19.0版本过老,npm依赖的高版本socks-proxy-agent包需要Node.js v14及以上版本提供的内置模块特性,老版本Node中不存在该包继承的父类构造函数,因此触发了该类型错误。
- 方案一(优先推荐):升级Node.js到长期支持的高版本。你使用nvm管理Node版本,直接执行
nvm install 18.17.0安装v18 LTS版本,安装完成后执行nvm use 18.17.0切换到该版本,之后重新执行create-react-app的安装命令即可。 - 方案二(兼容旧版Node):如果必须保留v10版本的Node,降级npm到适配v10的版本。执行
npm install -g npm@6.14.11完成降级,再执行npm cache clean --force清空npm缓存,之后重新尝试安装。 - 方案三(临时规避):如果此前配置过npm代理,可临时关闭代理后重试。执行
npm config set proxy null和npm config set https-proxy null清空代理配置,不需要调用socks代理相关依赖即可规避该错误。
内容的提问来源于stack exchange,提问作者supernovahs

