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

启动Gulp时遇ERR_REQUIRE_ESM错误,求有效解决方案

Gulp启动失败:Error [ERR_REQUIRE_ESM] 解决指南

问题核心

你遇到的Error [ERR_REQUIRE_ESM]是因为老旧的Gulp 3.9.1(CommonJS规范)和新版gulp-autoprefixer(仅支持ES模块)不兼容,你的Gulpfile用require()引入了ES模块格式的插件,导致Node.js报错。

解决方案

方案1:降级gulp-autoprefixer到兼容版本

这是最直接适配你当前Gulp 3.9.1的方案:

  • 卸载当前不兼容的插件版本:
    npm uninstall gulp-autoprefixer
    
  • 安装最后一个支持CommonJS的gulp-autoprefixer版本:
    npm install gulp-autoprefixer@7.0.1 --save-dev
    

方案2:统一Gulp版本(消除CLI与本地版本差异)

你的Gulp CLI(2.3.0)和本地Gulp(3.9.1)版本差距过大,容易引发额外兼容问题,建议统一:

  • 卸载全局Gulp CLI:
    npm uninstall -g gulp-cli
    
  • 安装适配Gulp 3.9.1的CLI版本:
    npm install -g gulp-cli@1.4.0
    
  • 验证版本匹配:
    gulp -v
    
    输出应显示CLI版本1.4.0,Local版本3.9.1。

方案3:改用ES模块格式编写Gulpfile(不降级插件)

如果想保留新版gulp-autoprefixer,需要将Gulpfile切换为ES模块规范:

  1. 重命名gulpfile.js为gulpfile.mjs
  2. 将所有require()替换为import语法,示例:
    // 原CommonJS代码
    const gulp = require('gulp');
    const autoprefixer = require('gulp-autoprefixer');
    
    // 替换为ES模块代码
    import gulp from 'gulp';
    import autoprefixer from 'gulp-autoprefixer';
    
  3. 在项目根目录的package.json中添加字段:
    "type": "module"
    
    注意:此方案要求Node.js版本≥14.13.0。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 06:46:12