You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安装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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 06:20:14