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

Jenkins部署时触发jsPDF非严格相等警告,求问题原因解析

Terser Plugin警告:jspdf库中出现非严格相等判断(== false)的问题分析

问题场景

部署构建产物后,Jenkins中收到Terser Plugin的警告:

WARNING in Terser Plugin: Non-strict equality against boolean: == false [./node_modules/jspdf/dist/jspdf.es.min.js:86,67647]

对应压缩代码行:

set:function(t){t=t.toString(),f=this instanceof mt==!1?"("===t.substr(0,1)?T(t.substr(1,t.length-2)):T(t):t}})

未压缩的原始库代码:

set: function set(value) {
  value = value.toString();

  if (this instanceof AcroFormButton === false) {
    if (value.substr(0, 1) === "(") {
      _DV = pdfUnescape(value.substr(1, value.length - 2));
    } else {
      _DV = pdfUnescape(value);
    }
  } else {
    _DV = value;
  }
}

问题原因

这个警告并非你修改库代码导致,而是jspdf官方预构建的压缩包本身存在的问题:
官方在打包jspdf时,Terser的优化规则将原始代码里的严格相等判断=== false转换为了== !1(!1等价于false),而你的项目构建流程中启用了Terser对「非严格相等布尔值」的检查规则,因此触发了警告。

解决方案

  • 忽略特定库的警告:在项目的Terser配置中排除jspdf相关文件的检查。以webpack配置为例:
    module.exports = {
      optimization: {
        minimizer: [
          new TerserPlugin({
            terserOptions: {
              compress: {
                warnings: true,
              },
            },
            exclude: /jspdf\.es\.min\.js$/
          })
        ]
      }
    }
    
  • 自行构建未压缩版本:安装jspdf的源码包,在项目中统一配置Terser压缩规则,避免这种非严格相等的转换。
  • 反馈官方修复:向jspdf仓库提交issue,说明预构建包存在的Terser警告问题,等待官方调整打包配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 12:17:37