需要扩展配置
当我们使用create-react-app创建React应用时,我们通常需要扩展更多的配置(如react-scripts或webpack),并且希望不弹出以便持续升级react-scripts。
当前可用的方法如下,但它们都有自己的问题。
npm run eject
无法升级react-scripts。- 修改node_modules下的react-scripts源代码,然后使用patch-packages
在升级react-scripts时无法维护。 - 使用
--scripts
参数,扩展自定义的react-scripts
为单个项目定制一个react-scripts成本太高。
- 社区中的其他程序
- craco
- react-app-rewired
- rescripts
- ......
这些程序都很棒,但是没有办法让社区支持继续下去。当有破坏性的更新,如CRA5时,几乎无法跟进支持,甚至被放弃。
例如,我曾经喜欢使用craco。但是,当CRA5发布时,由于更新太大,原作者没有太多时间来维护它,这个计划几乎被放弃了(LOOKING FOR A NEW TEAM TO LEAD CRACO)。
描述你想要的解决方案
希望官方能支持一种方法。在不弹出的情况下,我们可以扩展配置(如react-scripts/webpack),并将支持参数合并到webpackConfig中。
如果可以支持的话,我们可以在创建自定义cra-template时预设一些配置。
2条答案
按热度按时间neekobn81#
一个好的提案
2cmtqfgy2#
我认为从react-scripts到webpack 5,没有足够的价值主张来引起麻烦,如果你要自定义?
开箱即用,webpack 5支持热重载、错误覆盖、开发和生产默认值、缓存、输入和输出的合理默认值...,在这一点上,
react-scripts
只是真正启用了上述功能,添加了babel转换、CSS捆绑和集成的lint和类型检查。前两者很容易添加到webpack.config.js中,而后者的价值值得怀疑,通常被更大的web开发社区所抛弃(更倾向于CSS-in-JS和单独的CI传递+编辑器高亮显示)它有点粗糙(需要安装
@webpack-cli/generators
,有些我不喜欢的一些默认值等),但甚至有npx webpack-cli init
可以替换npx create-react-app
。