NextJS 12运行npm run dev报错ReferenceError: TextEncoder is not defined如何解决
问题原因
ReferenceError: TextEncoder is not defined报错是因为当前Node.js版本过低,不满足Next.js 12的最低运行要求。Next.js 12要求Node.js版本≥12.22.0,推荐使用处于维护期内的LTS版本(14.x、16.x或更高)。
解决方案
推荐方案(永久解决)
- 首先查看当前Node.js版本,执行命令:
node -v - 如果返回的版本号低于12.22.0,升级Node.js即可,推荐使用nvm管理Node版本,避免多版本冲突和权限问题:
- 安装最新LTS版本Node.js:
nvm install --lts - 切换到刚安装的LTS版本:
nvm use --lts - 可设置为全局默认版本:
nvm alias default --lts
- 安装最新LTS版本Node.js:
- 升级完成后,删除项目旧依赖和锁文件,重新安装:
rm -rf node_modules package-lock.json npm install - 重新执行
npm run dev即可正常启动项目。
临时兼容方案(不推荐)
如果暂时无法升级Node.js版本,可以在项目根目录的next.config.js文件顶部添加如下代码,手动注入全局TextEncoder:
const { TextEncoder, TextDecoder } = require('util'); global.TextEncoder = TextEncoder; global.TextDecoder = TextDecoder;
该方案仅做临时兼容,低版本Node.js后续还可能出现其他和Next.js 12不兼容的问题,建议优先升级Node.js版本。
内容的提问来源于stack exchange,提问作者Mindjacker_101
相关产品推荐
相关产品推荐

