使用Jest和Webpack别名进行测试 [英] Testing with Jest and Webpack aliases
本文介绍了使用Jest和Webpack别名进行测试的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我希望能够在使用jest时使用webpack别名来解析导入,并且最佳地引用 webpack.aliases
以避免重复。
I am looking to be able to use webpack aliases to resolve imports when using jest, and optimally, reference the webpack.aliases
to avoid duplication.
Jest conf:
Jest conf:
"jest": {
"modulePaths": ["src"],
"moduleDirectories": ["node_modules"],
"moduleNameMapper": {
"^@shared$": "<rootDir>/shared/",
"^@components$": "<rootDir>/shared/components/"
}
},
Webpack别名:
Webpack aliases:
exports.aliases = {
'@shared': path.resolve(paths.APP_DIR, 'shared'),
'@components': path.resolve(paths.APP_DIR, 'shared/components'),
};
进口:
import Ordinal from '@shared/utils/Ordinal.jsx';
import Avatar from '@components/common/Avatar.jsx';
由于某种原因 @
导致问题,因此,当删除(在别名和导入中)时,它可以找到共享
,但组件
仍然无法解析。
For some reason the @
causes issues, so when removed (in both alias and import), it can find shared
but components
still cannot be resolved.
FAIL src/shared/components/test/Test.spec.jsx
● Test suite failed to run
Cannot find module '@shared/utils/Ordinal.jsx' from 'Test.jsx'
我尝试过使用 jest-webpack-alias , babel-plugin-module-resolver 和 Jest / Webpack docs
推荐答案
这似乎是已修复。
以下是工作设置:
版本
jest:〜20.0.4
webpack:^ 3.5.6
package.json
"jest": {
"moduleNameMapper": {
"^@root(.*)$": "<rootDir>/src$1",
"^@components(.*)$": "<rootDir>/src/components$1",
}
}
webpack。 shared.js
const paths = {
APP_DIR: path.resolve(__dirname, '..', 'src'),
};
exports.resolveRoot = [paths.APP_DIR, 'node_modules'];
exports.aliases = {
'@root': path.resolve(paths.APP_DIR, ''),
'@components': path.resolve(paths.APP_DIR, 'components'),
};
这篇关于使用Jest和Webpack别名进行测试的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文