Create React App:那个让无数人入坑 React 的工具,现在怎么样了

2017 到 2021 年间,如果你学过 React,那你大概率接触过 Create React App。这个项目在 GitHub 上拿下了 10.3 万 Star,曾是 React 生态里最知名的脚手架工具。

正文顶部截图

它解决了什么问题

在 CRA 出现之前,配一个 React 项目相当折腾。webpack、Babel、ESLint,每一个都要手动配置。新手光搭环境就劝退了,老手也得花时间折腾。

CRA 的理念很明确:零配置开箱即用。一行命令,项目就跑起来了。

npx create-react-app my-app
cd my-app
npm start

背后集成了 webpack、Babel、ESLint、Jest,但开发者完全不需要关心这些。配置全部封装在 react-scripts 里,更新依赖就行。

项目结构也很干净:

my-app
├── public
├── src
│   ├── App.js
│   ├── App.css
│   ├── index.js
│   └── ...
├── package.json
└── README.md

README区域截图

核心设计

CRA 的设计围绕三个原则。第一个是单一依赖:整个构建系统封装在 react-scripts 一个包里,升级只需改一个版本号。第二个是零配置:开发、测试、生产构建的所有配置都预设好,开发者打开编辑器写代码就行。第三个是不锁定:提供了 eject 命令,任何时候都可以把配置弹出来完全自定义。

这种设计在当时很超前。webpack 配置出了名的复杂,社区里各种 starter template 质量参差不齐。CRA 提供了一个官方维护的稳定起点,让团队不用在工具链上反复折腾。

巅峰与低谷

CRA 在 2017-2021 年几乎是 React 入门的标配。当时做教程、写书、开课,大家都在用 CRA。npm 周下载量长期在百万级别。

但前端生态变化太快。2021 年后,Vite、Next.js、Remix 等工具快速崛起。Vite 基于 esbuild,开发服务器秒启,热更新毫秒级;Next.js 天然支持服务端渲染和路由。相比之下,CRA 基于 webpack 的冷启动要几十秒,项目大了热更新也越来越卡。

官方在 2022 年就标记为 Deprecated,不再推荐用于新项目。目前项目处于长期维护状态,只修 Bug 不添功能。官方建议新项目迁移到 Next.js、Gatsby 等推荐框架。

评价

CRA 的历史价值很清楚:它降低了 React 的入门门槛,让无数人第一次接触到了现代前端工具链。react-scripts 封装配置的思路,影响了很多后来的脚手架工具。

至于现在的选择,如果你只是跟着老教程学 React,那 CRA 还能用。但新项目更适合用 Vite(更快更好的开发体验)或 Next.js(框架能力更全)。就像官方说的,CRA 已经完成了它的历史使命,该往前看了。

更好的开发体验)或 Next.js(框架能力更全)。就像官方说的,CRA 已经完成了它的历史使命,该往前看了。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐