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

Jest解析node_modules依赖时出现Unexpected token 'export'错误的解决方案求助

解决Jest无法解析node_modules中依赖的ES模块语法问题

我懂你现在的困扰——Jest报错说quick-lru/index.js里的export语法不被识别,这是因为你只给geotiff开了转译白名单,但它的依赖quick-lru同样是未转译的ES模块,Jest默认不会处理node_modules里的这类代码,所以才会抛出语法错误。

直接解决方案

修改你jest.config.ts中的transformIgnorePatterns配置,把quick-lru也加入到白名单中:

"transformIgnorePatterns": [
  "node_modules/(?!(geotiff|quick-lru)/)"
],

为什么之前的配置没用?

Jest默认会跳过node_modules目录下的代码转译,但有些第三方库(比如quick-lru)发布的源码就是原生ES模块,而你的Jest环境暂时还没配置成直接支持这类模块。你之前只添加了geotiff,但geotiff内部依赖的quick-lru并没有被纳入转译范围,所以Jest还是无法解析它的语法。

额外排查点

如果修改后还是有问题,可以检查这两个地方:

  1. Babel配置:确保你的@babel/preset-env能适配当前Node版本,比如在项目的.babelrc或babel配置文件中:
    {
      "presets": [
        ["@babel/preset-env", {
          "targets": {
            "node": "current"
          }
        }],
        "@babel/preset-react",
        "@babel/preset-typescript"
      ]
    }
    
  2. Jest的transform规则:把JS相关的转译规则调整得更宽泛,覆盖更多模块类型:
    "transform": {
      "^.+\\.(js|jsx|mjs|cjs)$": "<rootDir>/node_modules/babel-jest",
      "^.+\\.tsx?$": "<rootDir>/config/jest/typescriptTransform.js",
      "^.+\\.css$": "<rootDir>/config/jest/cssTransform.js",
    },
    

这样调整后,Jest就会对geotiff和它的依赖quick-lru都进行转译,应该就能解决这个语法错误了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 01:32:34