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

配置transformIgnorePatterns后出现Cannot read property 'pdfMake' of underfined错误

问题根因

你配置transformIgnorePatterns时错误放开了对pdfmake相关包的转译限制:pdfmake本身是CommonJS规范的包,经过Babel转译后原本的module.exports导出会被封装为ES模块的default属性,原有直接挂载在导出对象上的pdfMake属性无法被直接读取,就会触发undefined报错。

解决方案
  • 修正transformIgnorePatterns配置,仅放开需要转译的、出现Unexpected token default错误的特定ESModule包,其余node_modules包保持默认忽略转译的规则,示例配置如下:
// jest.config.js 示例
module.exports = {
  // 其他原有配置保持不变
  transformIgnorePatterns: [
    // 替换括号内的xxx为你实际需要转译的node_modules包名,多个用|分隔
    "/node_modules/(?!(xxx)/)"
  ]
}
  • 调整Babel配置,强制所有转译后的模块统一用CommonJS规范导出,避免两种模块规范混用导致的导出丢失问题:
// .babelrc 或 babel.config.json 示例
{
  "presets": [
    ["@babel/preset-env", {
      "targets": { "node": "current" },
      "modules": "commonjs"
    }]
  ]
}
  • 若上述配置修改后仍有问题,可以调整pdfmake的引入写法兼容两种导出格式:
// 替换原有import/require写法
const pdfMake = require('pdfmake').default || require('pdfmake')
  • 配置修改完成后可以执行npx jest --debug查看最终生效的transformIgnorePatterns规则,确认配置没有被上层框架默认规则覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 04:24:02