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

如何让Jest识别带#前缀的ES6绝对路径导入?

解决方案

Jest默认不会读取package.json中imports字段定义的子路径映射规则,因此无法识别#前缀的导入路径,可通过以下步骤配置修复:

1. 新增jest.moduleNameMapper配置

在package.json的jest配置段中添加路径映射规则,和你定义的imports规则一一对应:

{
  "jest": {
    "moduleDirectories": [
      "node_modules",
      "src"
    ],
    // 新增以下配置
    "moduleNameMapper": {
      "^#src/(.*)$": "<rootDir>/src/$1",
      "^#loaders/(.*)$": "<rootDir>/src/loaders/$1"
    },
    "testEnvironment": "node",
    "extensionsToTreatAsEsm": [".js"]
  }
}
  • ^#前缀/(.*)$ 是正则匹配规则,对应你定义的导入前缀
  • <rootDir> 是Jest内置变量,指向项目根目录(即package.json所在目录)

2. 修正test脚本命令

你当前的test脚本中npm jest写法有误,npm无法直接识别jest作为子命令,需改为调用本地jest二进制:

{
  "scripts": {
    "test": "NODE_OPTIONS=--experimental-vm-modules npx jest"
  }
}

3. 可选:升级Jest版本

如果配置后仍不生效,可升级到最新稳定版Jest保证ES模块和路径映射的兼容性:

npm install -D jest@latest

配置完成后重新执行npm run test即可正常解析#前缀的导入路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 15:00:01