我是React的新话题。我最近启动了它,当我想启动一个React应用程序时遇到了问题。 “纱线启动”显示此错误:
The react-scripts package provided by Create React App requires a dependency: "babel-jest": "23.6.0"
请问如何克服这个错误。
我试图在Internet上找到解决方案,但我并不幸运。请问问题出在哪里?
答案 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
软件包) )。
根据您的评论,我相信发生的事情是这样的:
您使用了npm init
,它使用其自己的package.json
文件初始化了一个新的nodejs项目。
然后在该文件夹中,使用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
软件包。
通常,您应仅使用以下一项::
* npm init
在当前文件夹中初始化一个项目。
* yarn init
在当前文件夹中初始化一个项目。
* create-react-app .
在当前文件夹中初始化一个项目。
对于您当前的情况,由于您正在处理一个新项目,因此建议您尝试重新初始化一个新的create-react-app
项目。转到父文件夹,该文件夹位于您使用npm init
命令的文件夹之外。创建一个项目文件夹,然后在该文件夹中运行create-react-app .