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

安装Node.js与gulp后运行报错Error [ERR_REQUIRE_ESM]如何解决?

报错原因

你遇到的Error [ERR_REQUIRE_ESM]报错本质是:当前gulpfile使用CommonJS规范(通过require()引入依赖),但你安装的某个gulp插件最新版已仅支持ES Module规范,不兼容CommonJS的require引入方式。
你使用的Node v16.13.1、gulp 4.0.2版本本身默认支持CommonJS规范,问题出在依赖的插件版本上。

解决方法

方案一:降级对应ES Module插件为兼容CommonJS的版本(改造成本最低)

无需修改现有gulpfile代码,仅调整插件版本即可:

  • 先看报错提示中标注的ES Module包名称,例如常见的gulp-imagemin v8+版本仅支持ESM,降级到v7版本即可兼容,执行命令:
    npm uninstall gulp-imagemin && npm install gulp-imagemin@7 --save-dev
  • 如果是其他插件,可查询对应插件的版本更新日志,找到最后一个支持CommonJS的版本号,按上述格式降级安装即可。

方案二:将gulpfile改造为ES Module规范(适配最新版本插件)

如果需要使用插件的最新功能不想降级,可修改项目规范:

  • 打开项目根目录的package.json文件,添加配置项:"type": "module"
  • 将gulpfile.js中所有require()引入语法替换为ES Module的import语法,例如把const gulp = require('gulp')修改为import gulp from 'gulp',所有依赖均按此规则替换。
  • 将gulpfile中原来的module.exports =导出规则替换为export default或者对应命名导出即可。

注意:添加"type": "module"配置后,项目中其他原本使用CommonJS规范的.js文件如果运行报错,将这些文件的后缀修改为.cjs即可正常识别为CommonJS规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 17:15:00