开玩笑:“找不到根目录 [0] 选项中的目录”

问题描述

我正在尝试设置 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 中提供 rootsjest.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 (将#修改为@)