必需的 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
软件包捆绑在)。
更新
根据您的评论,我认为发生的事情是这样的:
您使用 npm init
初始化了一个新的 nodejs 项目,它有自己的 package.json
文件。
然后在该文件夹中,您使用 create-react-app
创建了一个 test
子文件夹 - 这初始化了 另一个 项目及其拥有 package.json
个文件。
出于某种原因,父文件夹中的项目(您使用 npm init
初始化)引用了 babel-jest
- 这与您使用 create-react-app
.
创建的子文件夹
请记住 npm
和 yarn
都是 nodejs 项目的包管理器。它们每个都有一个 init
命令,可用于初始化一个新项目,设置一个 package.json
文件。大多数情况下,您永远不需要在单个项目中同时使用 npm
和 yarn
。只需选择您要使用的那个并坚持使用那个。
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 .
我是 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
软件包捆绑在)。
更新
根据您的评论,我认为发生的事情是这样的:
您使用
npm init
初始化了一个新的 nodejs 项目,它有自己的package.json
文件。然后在该文件夹中,您使用
create-react-app
创建了一个test
子文件夹 - 这初始化了 另一个 项目及其拥有package.json
个文件。出于某种原因,父文件夹中的项目(您使用
npm init
初始化)引用了babel-jest
- 这与您使用create-react-app
. 创建的子文件夹
请记住 npm
和 yarn
都是 nodejs 项目的包管理器。它们每个都有一个 init
命令,可用于初始化一个新项目,设置一个 package.json
文件。大多数情况下,您永远不需要在单个项目中同时使用 npm
和 yarn
。只需选择您要使用的那个并坚持使用那个。
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 .