使用create-react应用程序和故事书时出现依赖树错误



TLDR:

我如何指示故事书使用babel loader v8.1.0或强制react脚本使用babel loader v^8.2.2?

详细信息

我与开发了一个库/示例文件夹,它本身就是用create-react应用程序创建的项目。我想在正常的示例页面之外添加故事书,所以我安装了故事书
安装故事书后,我无法再使用yarn start启动示例项目或使用yarn storybook启动故事书。

There might be a problem with the project dependency tree.
It is likely not a bug in Create React App, but something you need to fix locally.
The react-scripts package provided by Create React App requires a dependency:
"babel-loader": "8.1.0"
Don't try to install it manually: your package manager does it automatically.
However, a different version of babel-loader was detected higher up in the tree:
D:Eliavprojectsgit projectsreact-xarrowsexamplesnode_modulesbabel-loader (version: 8.2.2)
Manually installing incompatible versions is known to cause hard-to-debug issues.
If you would prefer to ignore this check, add SKIP_PREFLIGHT_CHECK=true to an .env file in your project.
That will permanently disable this message but you might encounter other issues.
To fix the dependency tree, try following the steps below in the exact order:
1. Delete package-lock.json (not package.json!) and/or yarn.lock in your project folder.
2. Delete node_modules in your project folder.
3. Remove "babel-loader" from dependencies and/or devDependencies in the package.json file in your project folder.
4. Run npm install or yarn, depending on the package manager you use.

嗯,我知道问题出在哪里,但我不知道如何解决:

我使用的是react-scriptsv4.0.3,由于未知原因,它需要babel-loaderv8.1.0。我可以在院子里看到这个。锁定:

react-scripts@^4.0.1:
version "4.0.3"
...
dependencies:
...
babel-loader "8.1.0"

以及需要babel-loaderv8.2.2或更高版本的故事书:

"@storybook/builder-webpack4@6.2.9":
version "6.2.9"
...
dependencies:
...
babel-loader "^8.2.2"

已尝试

  • 上面的错误中写了什么
  • 希望yarn upgrade能将babel加载程序从v8.1.0升级到v8.2.2,但它不起作用,因为react脚本正好需要v8.1.0

一个行之有效的解决方法

在项目目录中创建.env文件,并在该文件中包含SKIP_PREFLIGHT_CHECK=true。

但我想避开它。有可能吗?

因此,对于任何对此仍不清楚的人来说。

  • 我使用create-react-app创建了一个新的应用程序
  • 我使用npx sb init添加了故事书

然后他们发生了冲突。

解决方案:

yarn add babel-loader@8.1.0

更新:

您经常看到的错误是CRA(create-react-app(依赖于特定的依赖关系(例如webpackbabel(。

还可以做的是,根据错误消息,指定这些依赖项必须解析到哪个版本

这可以使用package.json中的resolutions字段来完成,例如:

"resolutions": {
"babel-loader": "8.1.0",
"webpack": "4.x.x",
}

之后一切都会好起来的。

2需要考虑的链接https://github.com/facebook/create-react-app/issues/10123和https://github.com/storybookjs/storybook/issues/4764#issuecomment-740785850

似乎大多数人都在安装软件包以使其工作,即使它说不要手动安装。

所以试试:

纱线添加babel-loader@8.1.0

最新更新