【发布时间】:2020-12-21 21:14:30
【问题描述】:
我一直在处理 React Typescript 存储库,并且遇到了一个令人讨厌的问题,即开玩笑无法解析相对于根目录的导入。
Cannot find module '~lib/dates' from 'utils.ts'
这就是导入在组件/实用程序中的样子
import { abc } from '~lib/dates'; // this fails to run
如果我将其更改为相对路径,开玩笑的测试会按预期运行
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
【问题讨论】:
-
你的回购结构是什么样的?
-
你用的是什么编译器? Babel 还是 Tsc?
-
我正在使用带有 babel 的单声道存储库作为转译器。将使用目录结构更新帖子。
标签: javascript typescript jestjs