1

引导 CRA 3.0 应用程序,然后弹出。
检查我的package.json.
发现多个包的用法对我来说不是很清楚。

"semver": "6.0.0"
为什么我需要这个?config/*在nor中没有找到用法scripts/*。它似乎是react-scripts相关包的类似验证逻辑的工件,因此它看起来像是我的应用程序依赖项中的一个臃肿。

"react-app-polyfill": "^1.0.0"
IE等的Polyfills?好的,但为什么要单独包装?core-js在or之上使用一些未知的包对我来说很可怕babel-polyfill。同样,在初始代码库中没有发现任何用法。

PS我不是在问这些包是什么,我是在问为什么我看到它们在弹出的脚本中没有使用

更新:react-app-polyfill/jsdom在 Jest 设置文件中使用

4

1 回答 1

2

create-react-app使用一个名为的包react-scripts,它隐藏了它在下面使用的所有不同的包。

当您eject使用应用程序时,所使用的依赖项将react-scripts复制到您自己的package.json. 但是对于像弹出这样的一些脚本,使用 babel 注释删除各个部分,例如@remove-on-eject-begin. 即使在您弹出后,这些部分中使用的依赖项仍然存在。

这就是您如何semver在应用程序代码的任何地方找到未使用的包的方式。在未弹出的创建反应应用程序中,该包将用于在弹出之前验证语义版本。

这些现在可以安全删除。但无论如何,它们不会被考虑到您正在创建的静态包中。

于 2019-04-30T12:33:44.287 回答