【发布时间】:2017-07-26 13:50:25
【问题描述】:
我希望能够在使用 jest 时使用 webpack 别名来解析导入,最好是引用 webpack.aliases 以避免重复。
开玩笑的:
"jest": {
"modulePaths": ["src"],
"moduleDirectories": ["node_modules"],
"moduleNameMapper": {
"^@shared$": "<rootDir>/shared/",
"^@components$": "<rootDir>/shared/components/"
}
},
Webpack 别名:
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';
由于某种原因,@ 会导致问题,因此在删除时(在别名和导入中),它可以找到 shared 但仍然无法解决 components。
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
【问题讨论】:
-
因为你使用 webpack-2 你在 env:test 中使用
transform-es2015-modules-commonjs吗?见:using-with-webpack-2 -
@符号表示scoped package,通常在您的第三方包路径中搜索。
标签: javascript reactjs webpack jestjs webpack-2