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

执行gulp build时突发node_module错误:Unexpected token {

问题分析与解决方案

从你的错误日志来看,核心问题是当前运行的Node.js版本不支持ES6的解构赋值语法——具体是const {builtinModules} = require('module');这一行的{}解构写法,在低版本Node.js(v6.0以下)里无法识别,所以抛出了SyntaxError: Unexpected token {。

为什么之前能成功,现在突然失败?

你提到自己只修改了一行兼容IE的代码,没碰过依赖,但大概率是以下原因之一:

  • 项目依赖(比如builtin-modules)被自动更新到了更高版本:这个包的v2.x版本开始使用ES6解构,而v1.x版本兼容旧Node。如果你的package.json里这个包的版本范围是^1.x.x或未锁定版本,重新安装依赖时就会自动升级到不兼容的v2+版本。
  • 构建环境的Node.js版本被更换:比如CI服务器上的Node版本被降级/更新,导致现在用的版本比之前成功构建时的版本低。

具体解决步骤

  1. 先检查当前Node.js版本
    在终端运行:

    node -v
    

    如果输出是v6.0以下的版本(比如v4.x),那肯定是版本问题。

  2. 方案一:升级Node.js版本(推荐)
    升级到Node.js的LTS版本(比如当时的v8.x或v10.x,也可以选择当前更稳定的LTS版本),这些版本完全支持ES6解构语法,升级后重新执行gulp build应该就能解决问题。

  3. 方案二:锁定依赖版本(如果无法升级Node)

    • 打开package.json,添加或修改builtin-modules的版本为兼容旧Node的版本:
      "builtin-modules": "^1.1.1"
      
    • 删除现有的node_modules文件夹和package-lock.json(或yarn.lock):
      rm -rf node_modules package-lock.json
      
    • 重新安装依赖:
      npm install
      

    这样就能强制安装兼容旧Node版本的builtin-modules,避免解构语法的报错。

  4. 验证构建
    重新执行gulp build,确认错误是否消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:16:54