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

如何解决测试中出现的ENOENT: no such file or directory, open 'node:stream'错误?

修复Jest中无法识别node:stream的问题

这个错误是因为Jest(或你的Node.js环境)不支持Node.js的node:协议式导入语法,以下是具体修复方案:

方案1:升级Node.js版本

node:协议是Node.js v14.13.0正式引入的特性,如果你的测试环境Node版本低于这个版本,直接升级到v14.13.0或更高的稳定版即可解决。

方案2:升级Jest及相关依赖

旧版本的Jest(比如27.x之前的版本)没有对node:协议导入做适配,会把它当成普通文件路径去查找。你需要:

  • 升级Jest到最新稳定版:npm install jest@latest --save-dev
  • 如果用TypeScript,同步升级ts-jest和@types/jest:npm install ts-jest@latest @types/jest@latest --save-dev

方案3:临时替换导入语法(兼容旧环境)

如果暂时无法升级依赖,可以把代码里的协议式导入替换成传统核心模块导入,两者在Node.js v14+功能完全一致:

  • 原代码:import { Writable } from 'node:stream'
  • 修改后:import { Writable } from 'stream'

方案4:配置Jest的模块映射

如果升级后仍有问题,可在jest.config.js(或jest.config.ts)中添加模块映射规则,让Jest把node:开头的模块映射为对应的核心模块:

module.exports = {
  // 其他已有配置
  moduleNameMapper: {
    '^node:(.+)$': '$1'
  }
}

内容的提问来源于stack exchange,提问作者Kenn Jones

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 18:06:27