V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
yazoox
V2EX  ›  程序员

旧事重提 - 大家创建一个新的正式项目,是用 create-react-app, eject 后改改配置还是自己搭,或者有更好的 boilerplate 推荐使用?

  •  
  •   yazoox · Apr 30, 2020 · 4916 views
    This topic created in 2197 days ago, the information mentioned may be changed or developed.

    刚才搜索了一下,貌似有个 2017 的帖子讲这个。前端变化快,大家都知道。

    现在 2020 年了,如果创建一个正式项目,前端,还是 react & typescript,更复杂点比如再加上( redux/saga/mobx,等等)。

    大家是用 facebook 的 create-react-app,然后npm run eject,还是自己搭配呢?或者,有没有比较好的 boilerplate 推荐一下?

    谢谢!

    另,祝大家五一节目快乐!

    p.s. 本人自己用 create-react-app 试过,eject 后,感觉好"繁杂"...... p.s. 好痛苦......

    28 replies    2020-05-14 20:45:57 +08:00
    fancy2020
        1
    fancy2020  
       Apr 30, 2020
    同样被这个问题困扰过,后来自己弄了个精简版的 boilerplate 项目:
    https://github.com/fanchangyong/react-express-starter-kit
    yuang
        2
    yuang  
       Apr 30, 2020 via Android
    建议不要 eject,eject 出来的配置太过复杂,改的头大,还不如重新用 webpack 搞
    FreMaNgo
        3
    FreMaNgo  
       Apr 30, 2020
    用 cra + react-app-rewired + customize-cra
    randyo
        4
    randyo  
       Apr 30, 2020 via Android
    eject
    Hanggi
        5
    Hanggi  
       Apr 30, 2020
    ng new app
    lichenshuai12138
        6
    lichenshuai12138  
       Apr 30, 2020
    @Hanggi hhhh
    well
        7
    well  
       Apr 30, 2020
    脚手架:react-boilerplate
    git clone --depth=1 github.com/react-boilerplate/react-boilerplate.git
    hantsy
        8
    hantsy  
       Apr 30, 2020
    react & typescript 还是用 CRA 生成 TS 项目。

    添加 ESLINT,Prettier 支持。https://dev.to/robertcoopercode/using-eslint-and-prettier-in-a-typescript-project-53jb

    不过,话说回来,TS 和 React 一起用感觉完全不如 Angular 中那么舒服。React 一直在改进 Hooks,但其重心一直是 Function,而不是 OOP 编程体验。对于 OOP 写法,在 React 中一直不受待见,作用 TS 唯一借用 TS 的 Strong Type 代替 Flow 类型检测而已。
    hantsy
        9
    hantsy  
       Apr 30, 2020
    不知道 React Create APP 有没有类似 Angular semantics 的机制,就我试用 RCA 的体验,感觉 RCA 出来的项目,添加其它配置也是比较麻烦的。
    ccraohng
        10
    ccraohng  
       Apr 30, 2020 via Android
    umijs
    lqzhgood
        11
    lqzhgood  
       Apr 30, 2020
    CRA 好难受~~ eject 一时爽 后面更难受……
    woniuppp
        12
    woniuppp  
       Apr 30, 2020
    umi
    uxstone
        13
    uxstone  
       Apr 30, 2020
    参考 CRA 中的 react-scripts 和 templates,自己定制两个 npm 包
    以后项目更新也只要修改版本号就行了

    原则上就是不要暴露太多与业务无关的脚手架配置,能隐藏到依赖中的尽量隐藏。
    tyrealgray
        14
    tyrealgray  
       Apr 30, 2020
    没事不要 eject,Facebook 给你维护后续各种工具不好吗?
    xuanbg
        15
    xuanbg  
       Apr 30, 2020
    搞个模板项目,然后都是复制粘贴改一改……
    liuzhaowei55
        16
    liuzhaowei55  
       Apr 30, 2020 via Android
    用阿里的 umi 最近更新了 3.0 新版本,相比以前配置简化了不少
    VDimos
        17
    VDimos  
       Apr 30, 2020 via Android
    CRA eject 这个体验真的糟糕,不知道为什么 react 官方推荐这个方式,相当糟心
    randyo
        18
    randyo  
       Apr 30, 2020 via Android
    不 eject 的话该配置简直不知道有多麻烦,各种报错,还得 eject 出来后才知道怎么改才不报错。说白了就是各种难改,vue-cli 好改多了
    lihongming
        19
    lihongming  
       May 1, 2020 via iPhone
    umijs+1

    虽然可能是 KPI 产物,但真的省事
    vone
        20
    vone  
       May 1, 2020 via Android
    试试 parcel?
    Mutoo
        21
    Mutoo  
       May 1, 2020
    目前用的是 react-boilerplate 在 /develop 上未发布的 5.0 版本,然后自己魔改过。
    yazoox
        22
    yazoox  
    OP
       May 1, 2020 via Android
    @vone
    这个 parcel 相当于什么工具? webpack?
    AV1
        23
    AV1  
       May 1, 2020 via Android
    开始我也不愿 eject,都是在项目内用各种奇技淫巧修修补补,担心 eject 出来的配置太复杂导致失控。但无奈这 CRA 实在是太简陋了,各种修补之后复杂度跟重建 webpack 还有啥区别。
    后来果断 eject,发现以前那些奇技淫巧才是在浪费时间。eject 后改那些配置文件没有传说中那么可怕,至少对写过 webpack 的我来说如此。
    ericgui
        24
    ericgui  
       May 1, 2020
    我现在觉得 parcel + babel 就够用了
    vone
        25
    vone  
       May 1, 2020 via Android
    @yazoox 自己看官网吧,有中文文档。有很多预设,使用体验比 webpack 好很多。
    yuanfnadi
        26
    yuanfnadi  
       May 1, 2020 via iPhone
    umijs

    路由,按需加载,antd,ts 还有一大堆东西你都不用管了。
    有人专人维护,内部大量使用。
    jinliming2
        27
    jinliming2  
       May 1, 2020 via iPhone
    我是自己搞了一套自用的模板,随时更新,新项目用最新的搭,基本上就是 git clone 然后删 .git 重新 git init,然后 yarn……
    create react app 感觉太重了(很多用不到的东西,不想留着
    yazoox
        28
    yazoox  
    OP
       May 14, 2020
    @jinliming2 能分享一下么?我去看看,学习一下!
    thx.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5678 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 108ms · UTC 06:58 · PVG 14:58 · LAX 23:58 · JFK 02:58
    ♥ Do have faith in what you're doing.