gpt4 book ai didi

javascript - Jest 测试运行 - 找不到模块错误

转载 作者:行者123 更新时间:2023-12-02 19:16:05 26 4
gpt4 key购买 nike

我一直在处理 React Typescript 存储库,遇到了一个恼人的问题,开 Jest 说无法解析相对于根目录的导入。

 Cannot find module '~lib/dates' from 'utils.ts'

这就是导入在组件/实用程序中的样子

import { abc } from '~lib/dates';   // this fails to run

如果我将其更改为相对路径,那么 jest 测试运行会按预期运行

import { abc } from '../../lib/dates';   // this runs as expected

同样的路径适用于其他一些目录,我有点难过

import { xyz } from '~components/home/constants';   // jest resolves it
import { abc } from '~lib/dates'; // ERR

我尝试在 jestConfig 中包含 moduleNameWrapper 以查看它是否可以正确解析导入,但没有帮助。

package.json

"jest": {
...

"moduleNameWrapper": {
"^~(.*)$": "<rootDir>/src/$1"
}
}

我肯定可以更新 VS 代码设置,以便相对于文件而不是根目录解析自动导入,但这已经困扰了我一段时间。如果有人对如何最好地解决这个问题有任何指示,那就太好了。

我在一个具有以下目录结构的 monorepo 上

repo
server
client
src
components
lib
utils
package.json

最佳答案

您的实现看起来不错。但看起来选项 moduleNameWrapper 是错误的选项,它应该是 moduleNameMapper

我也有一个和你一样的例子,它也使用 babel 作为翻译器,它工作正常,因为我添加了 moduleNameMapper。这是我的例子:

Jest 配置:

https://github.com/tmhao2005/lerna-demo/blob/master/packages/share/jest.config.js

测试文件如下:

https://github.com/tmhao2005/lerna-demo/blob/master/packages/helper/src/index.ts https://github.com/tmhao2005/lerna-demo/blob/master/packages/helper/src/index.test.ts

关于javascript - Jest 测试运行 - 找不到模块错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63709973/

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