简体   繁体   中英

The react-scripts package provided by Create React App requires a dependency : Babel-Jest

I found this error message when running react-script test

The react-scripts package provided by Create React App requires a dependency "babel-jest": "^24.9.0"`

So the error message also recommend us to remove package-lock.json and also node_modules I tried but I have the same error message.

And I inspect the package-lock.json and for example jest-config (is a sub dependancies) use higher version than react-script accept.

Please if you have some advices

packages.json

{
  "name": "creator-web-app",
  "version": "0.1.0",
  "private": true,
  "main": "public/electron.js",
  "homepage": "./",
  "dependencies": {
    "@craco/craco": "^5.6.4",
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/react": "^9.5.0",
    "@testing-library/user-event": "^7.2.1",
    "@types/react": "^16.9.34",
    "await-to-js": "^2.1.1",
    "axios": "^0.19.2",
    "classnames": "^2.2.6",
    "electron-is-dev": "^1.2.0",
    "env-cmd": "^10.1.0",
    "enzyme": "^3.11.0",
    "history": "^4.10.1",
    "i18next": "^19.4.2",
    "i18next-browser-languagedetector": "^4.0.2",
    "jest": "^25.3.0",
    "jwt-decode": "^2.2.0",
    "moment": "^2.24.0",
    "nano-id": "^1.1.0",
    "npm-watch": "^0.6.0",
    "react": "^16.13.1",
    "react-cookies": "^0.1.1",
    "react-dom": "^16.13.1",
    "react-i18next": "^11.3.4",
    "react-inlinesvg": "^1.2.0",
    "react-redux": "^7.2.0",
    "react-router-dom": "5.1.2",
    "react-scripts": "3.4.1",
    "redux": "^4.0.5",
    "redux-form": "^8.3.3",
    "redux-thunk": "^2.3.0",
    "typescript": "^3.7.0"
  },
  "scripts": {
    "electron": "NODE_ENV=production npm run build && NODE_ENV=production electron .",
    "start": "NODE_ENV=development react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject",
    "pack": "NODE_ENV=production && npm run build && electron-builder --dir",
    "dist": "NODE_ENV=production && npm run build electron-builder"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "devDependencies": {
    "@types/classnames": "^2.2.10",
    "@types/enzyme": "^3.10.5",
    "@types/jest": "^25.2.1",
    "@types/react-redux": "^7.1.7",
    "@types/react-router-dom": "^5.1.4",
    "@types/redux-form": "^8.2.3",
    "craco-alias": "^2.1.1",
    "electron": "^8.2.1",
    "electron-builder": "^22.4.1",
    "enzyme-adapter-react-16": "^1.15.2",
    "node-sass": "^4.13.1",
    "react-test-renderer": "^15.6.2",
    "ts-jest": "^25.4.0",
    "whatwg-fetch": "^3.0.0"
  },
  "build": {
    "appId": "studioapp.id",
    "mac": {
      "category": "your.app.category.type"
    },
    "files": [
      "**/*"
    ],
    "directories": {
      "buildResources": "."
    },
    "protocols": {
      "name": "studioapp-protocol",
      "schemes": [
        "studioapp"
      ]
    }
  },
  "jest": {
    "collectCoverageFrom": [
      "<rootDir>/src/**/*.{ts,tsx}"
    ],
    "moduleNameMapper": {
      "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga|yml)$": "<rootDir>/tests/test-file-mock.js",
      "\\.(css|less|scss|sss|styl)$": "<rootDir>/tests/test-mock.js",
      "@/(.*)$": "<rootDir>/src/$1"
    },
    "transform": {
      "^.+\\.(tsx|ts)?$": "ts-jest"
    }
  }
}

Thanks

I faced the same problem with create-react-app . Here is what I did

Go to the path

C:\Users\YOURNAME\node_modules

and then remove those packages which show an error.

More information here: https://github.com/creativetimofficial/argon-dashboard-react/issues/28

Ironically I was working on a similarish problem this morning. Could you provide a screenshot of your package.json and the error message?

Babel-Jest is used to compile javascript code into a format that jest can consume. I suspect that your problem is that you have a dependency that the lock file has subsequently locked in the incorrect version of babel-jest.

I can add some more details from the above response for solve this issue I found the problem.

When we use react-scripts we can't have jest packages or something is already manage by create-react-app

The problem when I have is package.json contain jest at superior version than react-script can accept

When I deleted this line in my package.json already seems to work

One of your dependencies is using a newer version of babel-jest . You can find which ones they are by running npm ls babel-jest in your project root directory.

A simple way to fix the problem then, is to try and link to an older version of those packages, eg "@types/jest": "^24.0.0" so that they don't use the newer version of babel-jest .

for mac user remove

/Users/{UserName}/node_modules

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM