不 eject 的前提下扩展 create-react-app 的配置?

2020-05-28 14:53:18 +08:00
 xiaoming1992

本人react菜鸡, 现在开新项目的时候遇到困难了, 希望大佬指点。

我希望能简便地扩展cra的配置,然而就一个很简单的lesscss module, 同时支持.less.module.less, 我没有找到一个用的比较舒服的方法。

  1. eject是我最抵触的, 相当于放弃了跟cra共同进步的机会, 自己维护一套config
  2. react-app-rewired与 1 的区别仅仅是将维护react-scripts交给了react-app-rewired的团队, 我不相信他们能做得比facebook
  3. next.js号称开箱即用, 但如果需要支持less, 需要next-less, 而next-less对于cssModule只有true/false, 而不是像 webpack 那样根据文件名后缀选择相应的 loader(至少next-less项目的 readme.md 中没有提到)
  4. 我的目的绝不单单是支持一个 less

我希望的是类似于webpack-chain那样(在不 eject 的前提下)的来扩展cra, 但是好像没找到这方面的资料。不eject的前提下扩展cra的配置, 有没有比较好的实践?

4624 次点击
所在节点    React
50 条回复
royzxq
2020-05-28 22:34:48 +08:00
royzxq
2020-05-28 22:35:05 +08:00
royzxq
2020-05-28 22:39:56 +08:00
xiaoming1992
2020-05-28 22:40:30 +08:00
@royzxq 强啊霸哥
dodo2012
2020-05-28 23:51:58 +08:00
@xiaoming1992 真不是踩不踩的,react 在开箱即用方面真的差太多了。
yyfearth
2020-05-29 05:45:25 +08:00
@xiaoming1992 自己动手能力强 而且喜欢 webpack 就好办了
不然信任 react-app-rewired customize-cra craco 这种现成的
自己 require override CRA 的 webpack config 就好了
我就这这么做的 具体怎么做 参考 react-app-rewired customize-cra craco 的核心就好了
就是几个 require.cache[webpackConfigPath].exports = function 就是了
yuanfnadi
2020-05-29 08:43:19 +08:00
@dodo2012 可以试试看 umi

1. 蚂蚁内部 3000+ 项目。 有人全职维护,不需要担心弃坑;
2. 内置了路由、构建、部署、测试。
3. 新建一个 page 目录,写一个 index.jsx 。就可以跑起来一个 react 页面。ts babel 路由,热更新,antd,less,css module 都不需要管。
witcherhope
2020-05-29 09:51:39 +08:00
不建议折腾 react-app-rewired, 建议 eject,升级无非就是相关 package 升级,升级前 diff 一下最新的 eject 包即可
dfkjgklfdjg
2020-05-29 18:45:28 +08:00
🤦🏻‍♂️你让我用 Stylus 的怎么办,之前学的时候就在想这个问题了。并不想 eject,然后多出来一堆东西
LeoooY
2020-06-04 13:18:47 +08:00
项目复杂、定制化多的就是应该 eject 出来,直接改 webpack 配置和绕一圈去搞 webpack 相比方便的多吧。而且 eject 出来的都是 js,又不是黑魔法,要改自己去读一下就知道是怎么回事了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/676317

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX