CRA 留下的烂摊子

最近做需求,想在项目中添加一个mock数据的功能,没想到会让我有诸多感思。

先说一下,项目背景:

  • 纯前端项目,使用React18.2
  • 项目是在2025年5月份左右创建,距离现在大约快1年时间

有意思的部分是,项目中使用了 react-app-rewired 这个工具。

这个工具是做什么的呢?

可以在不 eject 的情况下,调整 create-react-app 的 webpack 配置

当然远不如此,基本可以做到完整接入 webpack 的功能。

因此,这个项目很受 React 开发者喜欢,获得了 9.9K Star。


随着前端技术持续发展,CRA(create-react-app)经历了多次迭代,最后在2022年4月份之后停止了更新。

在CRA迭代的时间里,react-app-rewired 也一直在更新,直到同年2022年2月份之后也停止了更新。期间,做了大量对CRA的适配工作,老版本支持 webpack3.x,新版本支持webpack4.x。

但是,适配的工作永远没有尽头。


然后出现了,customize-cra 这个项目。

This project provides a set of utilities to customize create-react-app versions 2 and 3 configurations leveraging react-app-rewired core functionalities.

字面意思说,可以支持 create-react-app 版本 2 和 3 的配置。

实际上,customize-cra 在2020年5月份就走到了尽头,CRA的后续版本(4.x / 5.x)都无法支持。


在 react-app-rewired 项目获得关注后,React 社区又出现了新玩具🪀:

毫无例外,上面项目现在都已经停止了更新和维护。

这些项目停止更新前,最少也是 1k star
但,CRA 更是夸张的收获了 104k star


这件事情,告诉了我一个事实:

如果使用的第三方工具,它的依赖不够透明且过度封装,将导致失去灵活性扩展性。同样它也绝对不可靠不稳定,和不可持续。


Ref