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

使用Jenkins执行npm run build编译前端报错:Module parse failed

解决xlsx依赖jszip编译失败的问题

方案1:调整babel-loader配置,覆盖xlsx/jszip

修改项目的webpack配置文件(webpack.config.js、vue.config.js或react-app-rewired配置文件),让babel-loader处理node_modules/xlsx目录下的文件:

  • 原生webpack配置示例:
module.exports = {
  module: {
    rules: [
      {
        test: /\.(js|jsx)$/,
        exclude: /node_modules(?!\/xlsx)/, // 排除node_modules但包含xlsx
        use: ['babel-loader']
      }
    ]
  }
};
  • Vue项目(vue.config.js)示例:
module.exports = {
  chainWebpack: config => {
    config.module.rule('js')
      .include.add(/node_modules\/xlsx/)
      .end()
      .use('babel-loader')
      .loader('babel-loader')
      .tap(options => {
        options.presets.push('@babel/preset-env');
        return options;
      });
  }
};

方案2:补充babel新语法插件

如果babel未配置处理ES2020+语法(比如可选链?.、空值合并??),安装对应插件并更新配置:

  1. 安装依赖:
npm install @babel/plugin-proposal-optional-chaining @babel/plugin-proposal-nullish-coalescing-operator --save-dev
  1. 修改babel配置文件(.babelrc或babel.config.js):
{
  "presets": ["@babel/preset-env"],
  "plugins": [
    "@babel/plugin-proposal-optional-chaining",
    "@babel/plugin-proposal-nullish-coalescing-operator"
  ]
}

方案3:降级xlsx版本

若上述方案无效,可尝试降级到不依赖高版本语法的xlsx版本:

npm uninstall xlsx
npm install xlsx@0.17.0 --save

验证步骤

  • 本地先执行npm run build确认问题是否复现,排除Jenkins环境差异
  • 修改配置后重新本地构建测试
  • 提交配置变更到代码仓库,触发Jenkins构建

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 17:35:38