启动CRA 3.0应用程序,然后弹出。
正在检查我的package.json
。
发现多个包的用法对我来说还不是很清楚。
"semver": "6.0.0"
我为什么需要这个?在config/*
和scripts/*
中找不到用法。似乎是react-scripts
类似验证包相关逻辑逻辑的产物,因此在我的应用程序依赖项中看起来像是of肿。
"react-app-polyfill": "^1.0.0"
用于IE等的Polyfills?好的,但是为什么要单独包装呢?在core-js
或babel-polyfill
上使用一些未知的软件包对我来说是很可怕的。同样,在初始代码库中找不到用法。
P.S。我不是在问这些软件包是什么,我是在问为什么我看到它们在弹出的脚本中未被使用
更新:Jest设置文件中使用了react-app-polyfill/jsdom
答案 0 :(得分:2)
create-react-app
使用名为react-scripts
的程序包,该程序包隐藏了其下面使用的所有不同程序包。
当您eject
使用应用程序时,react-scripts
使用的依赖项是copied over到您自己的package.json
。但是对于某些脚本(例如弹出),使用像@remove-on-eject-begin
这样的babel注释删除了各个部分。即使您退出后,这些部分中使用的依赖关系仍然存在。
这是查找诸如semver
之类的未在应用程序代码中任何地方使用的包的方式。在未弹出 create react应用程序中,该软件包将用于在弹出之前验证semantic versions。
现在可以安全删除这些文件。但是无论如何您都不会将它们纳入静态捆绑中。