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

使用TS编写Gatsby站点Jest配置时__PATH_PREFIX__类型报错如何解决

问题原因

你遇到的类型报错是因为配置结构写错了:你把testPathIgnorePatterns、transformIgnorePatterns、globals、testURL、setupFiles这些Jest的顶级配置项,错误嵌套进了moduleNameMapper字段内部。
moduleNameMapper的类型定义要求所有属性的值只能是string | string[]类型,你把对象类型的globals放在这里,自然触发类型不匹配的错误。

修复方法

把错误嵌套在moduleNameMapper里的配置项,挪到和transform、testEnvironment同级的根配置层级即可,同时注意正则字符串里的特殊字符需要做转义处理。

修正后的完整代码

import type { InitialOptionsTsJest } from 'ts-jest/dist/types'
import { jsWithBabel as tsjPreset } from 'ts-jest/presets'

const config: InitialOptionsTsJest = {
  transform: {
    ...tsjPreset.transform,
  },
  testEnvironment: 'node',
  moduleNameMapper: {
    '.+\\.(css|styl|less|sass|scss)$': `identity-obj-proxy`,
    '.+\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': `<rootDir>/__mocks__/file-mock.js`,
  },
  testPathIgnorePatterns: [`node_modules`, `\\.cache`, `<rootDir>.*/public`],
  transformIgnorePatterns: [`node_modules/(?!(gatsby)/)`],
  globals: {
    __PATH_PREFIX__: '',
  },
  testURL: `http://localhost`,
  setupFiles: [`<rootDir>/loadershim.js`],
}

export default config

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:09:02