【问题标题】:Required babel-jest dependency必需的 babel-jest 依赖项
【发布时间】:2019-08-07 19:57:38
【问题描述】:

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

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

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

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

【问题讨论】:

  • 真的很奇怪,nodejs什么版本,操作系统,……你有吗?它应该可以正常工作 yarn create react-app my-app && cd my-app && yarn build && yarn start (用 nodejs v10.15.0 测试)
  • 感谢您的重播。我有 v10.15.1。抱歉回复晚了,但附近没有电脑。

标签: reactjs babel-jest


【解决方案1】:

所以看起来可能发生的事情是在您使用create-react-app 创建了一个新应用程序之后。然后,您手动添加了带有yarn add babel-jestbabel-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 - 这与您使用 @987654341 创建的子文件夹中的应用程序相冲突@。

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

【讨论】:

  • 没有。我创建了一个节点应用程序:npm init。然后我在 app 文件夹中安装 yarn:npm i -g yarn。然后我运行 yarn create-react-app 测试。然后我想启动应用程序:yarn start。 :)
  • @SándorHatvani 根据您的评论更新了我的答案。希望对您有所帮助!
  • 非常感谢。我只是想放弃它。但是我可以再问一个问题吗?为什么 yarn create react-app Test 命令会在我的 Test 文件夹中创建一个子文件夹?当我在没有应用名称的情况下运行此命令时,它会给我一个错误。
  • 可以不使用yarn,直接使用create-react-app。您还会注意到create-react-app 带有一个参数,即新项目应该驻留的文件夹。如果你输入.,那么它将是当前文件夹。如果您输入test,那么它将创建一个名为test 的子文件夹并在那里构建您的项目。
  • 非常感谢。我很高兴你能如此乐于助人。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-01
  • 1970-01-01
  • 2017-06-11
相关资源
最近更新 更多