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

Node.js运行项目时whatwg-url报TextEncoder未定义错误如何解决?

问题根因

该报错由whatwg-url依赖包与当前运行的Node.js版本不兼容导致:

  • Node.js 10.x及更早版本未在全局作用域默认挂载TextEncoder、TextDecoder API
  • 你新增的mongodb依赖会自动引入高版本whatwg-url,该版本默认调用全局TextEncoder,因此之前无mongodb的项目可以正常运行

解决方案

按优先级依次尝试:

  1. 确认项目实际使用的Node.js版本
    运行命令node -v查看当前生效版本,若仍为10.x及更早版本,说明你升级的是全局Node,当前项目存在版本锁定(比如使用nvm局部版本、IDE指定了旧Node路径),切换到Node.js 12.x及以上版本即可直接解决问题。

  2. 注入全局polyfill(无需修改依赖/Node版本)
    在项目入口文件(比如index.js、app.js)的最顶部添加如下代码:

const { TextEncoder, TextDecoder } = require('util');
global.TextEncoder = TextEncoder;
global.TextDecoder = TextDecoder;

该方法直接将Node内置的编码API挂载到全局,适配高版本whatwg-url的调用逻辑。

  1. 降级兼容版whatwg-url
    如果上述方案不适用,可安装最后一个兼容Node.js 10.x的whatwg-url版本:
npm install whatwg-url@11.0.0
  1. 清理依赖锁文件重装
    如果修改版本后仍报错,删除项目根目录下的node_modules文件夹、package-lock.json文件后重新执行npm install,排除旧版本依赖锁定的影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:36:02