首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在monorepo中使用jest + typescript

在monorepo中使用jest + typescript
EN

Stack Overflow用户
提问于 2019-06-27 23:32:38
回答 1查看 921关注 0票数 3

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

代码语言:javascript
复制
import {publish, subscribe} from "message-bus"

现在在我的tsconfig.json中,我有:

代码语言:javascript
复制
...
    "compilerOptions": {
        "baseUrl": "./packages",
        "paths": {
            "message-bus":["message-bus/src"],
        }, 
...

jest.config.js包中

代码语言:javascript
复制
module.exports = {
...
  preset: 'ts-jest',
  moduleNameMapper: {
    '^message-bus/(.*)$': "../message-bus/src/$1"
  }
...
}

尽管如此,jest还是抱怨说它找不到模块message-bus。你能帮我修复我的配置吗?

EN

回答 1

Stack Overflow用户

发布于 2020-11-11 01:33:26

假设您的jest.config.js位于包的根目录,而不是monorepo,那么您需要moduleNameMapper来形成一个可以从任何位置理解的路径。为此,您可以从jest.config.js文件所在的目录开始,然后从该目录构建路径。这将创建到映射模块的绝对路径。

此外,您需要在正则表达式捕获组中使用斜杠(/),因为它并不总是在路径中。

代码语言:javascript
复制
const path = require('path');

module.exports = {
  ...
  preset: 'ts-jest',
  moduleNameMapper: {
    '^message-bus(.*)$': path.join(__dirname, '../message-bus/src$1')
  }
  ...
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56794436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档