必需的 babel-jest 依赖

Required babel-jest dependency

我是 React 的新手。我最近启动了它,当我想启动 React 应用程序时遇到问题。 'yarn start' 显示此错误:

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

请问如何克服这个错误。

我试图在网上找到解决方案,但我并不走运。请问哪里有问题?

因此看起来 可能 发生的事情是在您使用 create-react-app 创建了一个新应用程序之后。然后您手动添加了 babel-jest 包和 yarn add babel-jest。至少,这就是我如何能够在我的机器上复制你引用的错误。

不需要 手动添加 babel-jest 包,因为它已经捆绑到 create-react-app 中。因此,您需要按照与上述错误一起提供的说明进行操作才能删除程序包:

首先,打开 package.json 并删除包含 babel-jest 的依赖行。它可能看起来像这样:

// package.json
{
  "name": "babel",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "babel-jest": "23.6.0",  <----------- REMOVE THIS LINE
    "react": "^16.8.4",
    "react-dom": "^16.8.4",
    "react-scripts": "2.1.8"
  },

然后,由于您使用的是 yarn,请在您的项目根文件夹中执行以下操作:

rm -rf node_modules
rm yarn.lock
yarn install

这将删除手动添加的 babel-jest 软件包,然后为您提供最初随 create-react-app 附带的所有软件包的全新安装(其中包括已经安装的 babel-jest 软件包捆绑在)。


更新

根据您的评论,我认为发生的事情是这样的:

  1. 您使用 npm init 初始化了一个新的 nodejs 项目,它有自己的 package.json 文件。

  2. 然后在该文件夹中,您使用 create-react-app 创建了一个 test 子文件夹 - 这初始化了 另一个 项目及其拥有 package.json 个文件。

  3. 出于某种原因,父文件夹中的项目(您使用 npm init 初始化)引用了 babel-jest - 这与您使用 create-react-app.

  4. 创建的子文件夹

请记住 npmyarn 都是 nodejs 项目的包管理器。它们每个都有一个 init 命令,可用于初始化一个新项目,设置一个 package.json 文件。大多数情况下,您永远不需要在单个项目中同时使用 npmyarn。只需选择您要使用的那个并坚持使用那个。

create-react-app 是另一个命令,可用于初始化一个内置大量初始设置的新 ReactJS 项目。它内置了 babel-jest,这可能会导致有些与父文件夹的 package.json 文件或可能与全局安装的 babel-jest 包冲突。

一般来说,您应该仅使用以下 1 个: * npm init 在当前文件夹中初始化一个项目。 * yarn init 在当前文件夹中初始化一个项目。 * create-react-app . 在当前文件夹中初始化一个项目。

对于您目前的情况,由于您正在处理一个新项目,我建议您尝试重新开始初始化一个新的create-react-app 项目。转到您使用 npm init 命令的文件夹之外的父文件夹。创建一个项目文件夹,然后在该文件夹中,运行 create-react-app .