node.js - jest 无法解析 Node 模块子路径模式导入

标签 node.js express ecmascript-6 jestjs es6-modules

我使用 node express 和使用构建项目
https://nodejs.org/api/packages.html#packages_subpath_patterns防止“../../../xxx.js”
我将此添加到 package.json并且完美地工作

"imports": {
  "#src/*": "./src/*.js"
}
但是当我尝试从 jest 运行测试时出现了这个错误
Cannot find module '#src/config/database.js' from 'src/database/connection.js'

    Require stack:
      src/database/connection.js
      test/admin.test.js

      1 | import { MongoClient } from "mongodb";
    > 2 | import databaseConfig from "#src/config/database.js";
        | ^


      at Resolver.resolveModule (node_modules/jest-resolve/build/resolver.js:311:11)
      at Object.<anonymous> (src/database/connection.js:2:1)
我不知道如何解决这个问题,试图从谷歌搜索和文档中找到解决方案找不到与此类似的问题

最佳答案

将此添加到您的配置文件中

// jest.config.json
moduleNameMapper: {
    "#src/(.*)": "<rootDir>/src/$1",
}
https://jestjs.io/docs/configuration#modulenamemapper-objectstring-string--arraystring

关于node.js - jest 无法解析 Node 模块子路径模式导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68869339/

相关文章:

javascript - 使用动态键 react setState

javascript - JS 数组解构 - 它是如何给出这个输出的?

javascript - 覆盖 package.json 脚本 - NPM

node.js - 尝试 - 当 JSON 有反斜杠时,Catch 没有正确响应

node.js - EJS 在某些情况下只输出第一个找到的用户

javascript - 如何在 Node.js Express 中从 POST 路由器调用 PUT 路由器?

javascript - Sequelize 添加关联

javascript - 如何检查两个对象是否具有相同的一组属性名称?

javascript - 使用 Sinon stub pg-promise

typescript - 使用 ES6 集合类型创建和发布 NPM 模块