安装Node.js 20.3.1后运行Astro dev仍遇ReadableStream类型错误求助
运行
npm run dev时出现ReadableStream相关TypeError错误 我在开发一个包含图片和联系表单的简单静态网页,使用Astro框架。已经查阅过同类错误问题,并且将Node.js(当前v20.3.1)和npm更新至最新版本,但运行npm run dev时仍报错,报错信息如下:
PS C:\Users\maxim\maxim> npm run dev > maxim@0.0.1 dev > astro dev astro v2.7.2 started in 182ms ┃ Local http://localhost:3000/ ┃ Network use --host to expose C:\Users\maxim\maxim\node_modules\web-streams-polyfill\dist\polyfill.js:362 throw new TypeError(context + " is not a ReadableStream."); ^ TypeError: First parameter has member 'readable' that is not a ReadableStream. at assertReadableStream (C:\Users\maxim\maxim\node_modules\web-streams-polyfill\dist\polyfill.js:362:19) at convertReadableWritablePair (C:\Users\maxim\maxim\node_modules\web-streams-polyfill\dist\polyfill.js:3524:9) at ReadableStream.pipeThrough (C:\Users\maxim\maxim\node_modules\web-streams-polyfill\dist\polyfill.js:3608:29) at fetchFinale (node:internal/deps/undici/undici:11082:56) at mainFetch (node:internal/deps/undici/undici:10974:9) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) Node.js v20.3.1 PS C:\Users\maxim\maxim>
求解决思路,感谢!
解决思路
锁定web-streams-polyfill版本:这个错误多是polyfill与Node.js内置Stream实现冲突导致的。在
package.json中添加resolutions字段(npm用户需先安装npm-force-resolutions),指定该依赖为3.2.1版本:"resolutions": { "web-streams-polyfill": "3.2.1" }执行
npm install重新安装依赖。降级Node.js版本:Node.js v20的undici实现可能与旧版Astro(v2.7.2)不兼容,可尝试降级到Node.js v18 LTS版本后重新运行项目。
升级Astro版本:当前使用的Astro v2.7.2版本较旧,升级到最新v2稳定版或v3版本,大概率已修复该兼容问题:
npm install astro@latest清理缓存重装依赖:删除
node_modules文件夹和package-lock.json文件,执行npm cache clean --force,再运行npm install确保依赖安装无异常。
内容的提问来源于stack exchange,提问作者user22178000
相关产品推荐
相关产品推荐

