【问题标题】:The react-scripts package provided by Create React App requires a dependency : Babel-JestCreate React App 提供的 react-scripts 包需要依赖:Babel-Jest
【发布时间】:2020-04-20 10:43:26
【问题描述】:

我在运行react-script test时发现了这个错误信息

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

因此错误消息还建议我们删除 package-lock.json 以及我尝试过的 node_modules 但我有相同的错误消息。

我检查了 package-lock.json,例如 jest-config(是一个子依赖项)使用比 react-script 接受更高的版本。

如果你有什么建议,请指教

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"
    }
  }
}

谢谢

【问题讨论】:

    标签: html reactjs jestjs babeljs


    【解决方案1】:

    create-react-app 遇到了同样的问题。这就是我所做的

    去路径

    C:\Users\YOURNAME\node_modules
    

    然后删除那些显示错误的包。

    更多信息在这里:https://github.com/creativetimofficial/argon-dashboard-react/issues/28

    【讨论】:

      【解决方案2】:

      具有讽刺意味的是,我今天早上正在研究一个类似的问题。您能否提供您的 package.json 的屏幕截图和错误消息?

      Babel-Jest 用于将 javascript 代码编译成 jest 可以使用的格式。我怀疑你的问题是你有一个依赖,锁定文件随后锁定在不正确的 babel-jest 版本中。

      【讨论】:

        【解决方案3】:

        我可以从上面的回复中添加更多细节来解决这个问题,我发现了问题。

        当我们使用 react-scripts 时,我们不能有 jest 包,或者某些东西已经由 create-react-app 管理

        我遇到的问题是 package.json 包含的 jest 版本高于 react-script 可以接受的版本

        当我在我的 package.json 中删除这一行时,似乎已经可以工作了

        【讨论】:

          【解决方案4】:

          您的一个依赖项正在使用更新版本的babel-jest。您可以通过在项目根目录中运行 npm ls babel-jest 来找到它们。

          解决问题的一个简单方法是尝试链接到这些软件包的旧版本,例如"@types/jest": "^24.0.0",这样他们就不会使用较新版本的babel-jest

          【讨论】:

            【解决方案5】:

            mac 用户删除

            /Users/{UserName}/node_modules
            

            【讨论】:

              猜你喜欢
              • 2021-07-11
              • 2020-07-12
              • 2022-06-15
              • 2019-04-26
              • 2019-02-06
              • 2021-04-02
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多