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

如何为ts-jest导入ts-gaussian配置moduleNameMapper?

解决方案

  1. 先配置tsconfig.json
    打开项目的tsconfig.json文件,在compilerOptions中开启esModuleInterop,消除运行警告:
{
  "compilerOptions": {
    "esModuleInterop": true,
    // 其余原有配置保持不变
  }
}
  1. 配置jest参数
    找到项目的jest配置文件,通常是项目根目录的jest.config.js,或者package.json中的jest字段,添加如下配置:

若使用jest.config.js:

module.exports = {
  // 其余原有配置保持不变
  moduleNameMapper: {
    "^ts-gaussian$": require.resolve("ts-gaussian")
  },
  transformIgnorePatterns: [
    "node_modules/(?!ts-gaussian/)"
  ]
}

若在package.json中配置jest:

{
  "jest": {
    "moduleNameMapper": {
      "^ts-gaussian$": "<rootDir>/node_modules/ts-gaussian/dist/index.esm.js"
    },
    "transformIgnorePatterns": [
      "node_modules/(?!ts-gaussian/)"
    ]
  }
}

如果你的项目是monorepo结构,依赖安装在仓库根目录的node_modules中,调整moduleNameMapper中的路径匹配仓库根目录的ts-gaussian入口文件即可。

其中moduleNameMapper作用是直接将导入的ts-gaussian模块名映射到实际安装的包入口,避免jest路径解析失败;transformIgnorePatterns是让jest转换ts-gaussian的代码,因为ts-gaussian默认输出ESM格式,jest默认不会转换node_modules下的ESM代码,会导致解析失败。

配置完成后重新执行npm test,测试即可正常运行。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:36:02