当你运行 npm run eject会将潜藏的一系列配置文件和一些依赖项都“弹出”到项目中,然后就可以由你自己完全控制,但是这个过程是不可逆的。
文件夹中会新增config和scripts文件,package.json文件可以看到项目的依赖项dependemcies和 script配置发生了变化,以及添加了jest的配置
eject的副作用:
1,如果后续的cra更新了并添加了很多不错的功能,如果想应用到自己的项目中,可以通过更新cra版本来实现,而不是更新webpack的配置,但是如果已经对项目进行了eject操作,那么就无法很好的迎接未来
2,对于代码洁癖的人来说不是很友好,因为eject之后,package.json文件会被写入很多依赖项,还有其他的脚本和配置文件
3,如果你有多个项目都是eject的,那么修改配置,可能会大量的复制粘贴,因为大多数情况下,项目的配置(比如webpack和babel)都是相同的
react-scripts的工作原理
1,
没有进行eject之前:
react-eject.png
进行了eject之后:
eject.png
2,eject可以讲react-scripts中几乎全部的逻辑代码释放到项目的根目录中,从而允许我们自行修改
3,babel-core、webpack这些我们都没下载,配置。react-scripts都帮忙做好了
网友评论