gpt4 book ai didi

javascript - 使用 Jest 和 Webpack 别名进行测试

转载 作者:IT王子 更新时间:2023-10-29 03:19:10 25 4
gpt4 key购买 nike

我希望能够在使用 jest 时使用 webpack 别名来解析导入,并且最好引用 webpack.aliases 以避免重复。

开 Jest session :

  "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';

出于某种原因,@ 会导致问题,因此当删除时(在别名和导入中),它可以找到 sharedcomponents 仍然存在无法解决。

 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-resolverJest/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'),
};

关于javascript - 使用 Jest 和 Webpack 别名进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42629925/

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