它似乎不尊重NODE_PATHS env变量,而只是查看当前目录。
答案 0 :(得分:3)
Jest不会读取NODE_PATH。在我们使用webpack的项目中,我们遇到了alias
和moduleDirectories
的问题。 Jest没有正确解析路径。所以我们这样解决了:
假设您要导入
import SomeComp from 'components/SomeComp';
位于/src/components/SomeComp/index.js
在package.json
中定义:
"jest": {
"moduleNameMapper": {
"/src/(.*)": "<rootDir>/src/$1"
}
},
答案 1 :(得分:3)
遇到同一问题,Jest不尊重webpack模块解析别名。
在jest.config.js
中:
moduleNameMapper: {
'Services(.*)$': '<rootDir>/src/services/$1'
}
您现在可以使用以下导入语句:
import { validateEmail } from 'Services/utilities';
答案 2 :(得分:2)
目前Jest在其模块解析代码中并不支持NODE_PATH
(除了事实上它没有被构建之外没有任何理由)。
我们现在正在跟踪此问题:https://github.com/facebook/jest/issues/102
答案 3 :(得分:1)
来自Jest文档:
https://jestjs.io/docs/en/configuration
在package.json
中定义:
"jest": {
"modulePaths": [
"<rootDir>/src/"
],
},
答案 4 :(得分:0)
把它放在你的 package.json 中
"jest": {
"modulePaths": [
"<rootDir>"
],
},
答案 5 :(得分:0)
遇到了同样的问题,这是我解决的方法。 假设您正在尝试导入 src/components/404.vue 在你的 package.json 中:
...
"jest": {
"modulePaths": [
"<rootDir>/src/components"
]
}
...
绝对路径“/src/components/”现在可以在您的 404.test.js 中解析为:
import Page404 from '404.vue'