必需的babel-jest依赖性

时间:2019-03-17 06:59:07

标签: reactjs babel-jest

我是React的新话题。我最近启动了它,当我想启动一个React应用程序时遇到了问题。 “纱线启动”显示此错误:

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

请问如何克服这个错误。

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

1 个答案:

答案 0 :(得分:3)

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

  2. 然后在该文件夹中,使用create-react-app创建一个test子文件夹-该初始化的另一个项目具有自己的package.json文件

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

请记住,npmyarn都是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 .