问题描述
我正在尝试设置 monorepo 以一次运行其所有 Jest 测试。在每个包中,我都使用 react-app-rewired 让 Babel 转译从其他包导入的代码,而不从 create-react-app 中弹出,如 this article 中所述。
react-app-rewired test
从每个包文件夹运行时成功,但是当从 monorepo 的根文件夹运行时,我收到此错误
Directory /Users/Me/go/src/gitlab.com/my-org/front-end/src in the roots[0] option was not found.
我的 src
文件夹(monorepo 根目录)中没有 front-end
文件夹,我不明白 Jest 为何试图查看那里。
我尝试在 rootDir
中提供 roots
和 jest.config.js
,但这似乎没有什么区别。
如何让 Jest 停止查找不存在的文件夹?
jest.config.js(根):
module.exports = {
rootDir: ["."],projects: [
"<rootDir>/packages/app","<rootDir>/packages/components","<rootDir>/packages/utils",],};
package.json(根):
{
"name": "root","private": true,"workspaces": [
"packages/*"
],"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},"lint-staged": {
"**/*.{js,jsx,ts,tsx,json,css,scss,md}": [
"prettier --write"
]
},"scripts": {
"analyze": "source-map-explorer 'build/static/js/*.js'","start": "react-app-rewired start","build": "react-app-rewired build","test": "react-app-rewired test","eject": "react-scripts eject","prettier": "prettier --check '**/*.js'","prettier:fix": "prettier --write '**/*.js'"
},"eslintConfig": {
"extends": [
"react-app","react-app/jest"
]
},"browserslist": {
"production": [
">0.2%","not dead","not op_mini all"
],"development": [
"last 1 chrome version","last 1 firefox version","last 1 safari version"
]
}
}
config-overrides.js(根):
const path = require("path");
const { override,babelInclude } = require("customize-cra");
module.exports = function (config,env) {
return Object.assign(
config,override(
babelInclude([
path.resolve("./packages/app"),path.resolve("./packages/components"),path.resolve("./packages/utils"),])
)(config,env)
);
};
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)