首页 > 解决方案 > 必需的 babel-jest 依赖项

问题描述

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

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

请问我该如何克服这个错误。

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

标签: reactjsbabel-jest

解决方案


所以看起来可能发生的事情是在您使用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 initwhich 初始化了一个带有自己package.json文件的新 nodejs 项目。

  2. 然后在那个文件夹中,你用来create-react-app创建一个test子文件夹——这用它自己的文件初始化了另一个package.json项目。

  3. 由于某种原因,父文件夹中的项目(您使用 初始化npm init)具有对babel-jest- 的引用,这与您使用创建的子文件夹中的应用程序冲突create-react-app

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

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

作为一般规则,您应该只使用以下之一: *npm init在当前文件夹中初始化项目。*yarn init在当前文件夹初始化一个项目。*create-react-app .在当前文件夹初始化一个项目。

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


推荐阅读