gpt4 book ai didi

typescript - 在 monorepo 中使用 jest + typescript

转载 作者:行者123 更新时间:2023-12-04 17:35:36 30 4
gpt4 key购买 nike

我目前正在尝试在 Typescript monorepo 中使用 jest(不是 Lerna 或任何只是 baseURLpaths 的东西,也不是我的决定),我正在测试的文件之一从 monorepo 导入了一些东西。


import {publish, subscribe} from "message-bus"

现在在我的 tsconfig.json我有:
...
"compilerOptions": {
"baseUrl": "./packages",
"paths": {
"message-bus":["message-bus/src"],
},
...

并在包裹中 jest.config.js :

module.exports = {
...
preset: 'ts-jest',
moduleNameMapper: {
'^message-bus/(.*)$': "../message-bus/src/$1"
}
...
}

即使所有这些都到位 jest提示找不到模块 message-bus .你能帮我修复我的配置吗?

最佳答案

假设您的 jest.config.js位于包的根目录而不是 monorepo,您​​需要 moduleNameMapper形成从任何位置都可以理解的路径。您可以从 jest.config.js 所在的目录开始执行此操作。文件在,然后从那里建立你的路径。这将创建映射模块的绝对路径。
此外,您的正则表达式捕获组中需要斜线( / ),因为它并不总是在路径中。

const path = require('path');

module.exports = {
...
preset: 'ts-jest',
moduleNameMapper: {
'^message-bus(.*)$': path.join(__dirname, '../message-bus/src$1')
}
...
}

关于typescript - 在 monorepo 中使用 jest + typescript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56794436/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com