V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fushang318
V2EX  ›  程序员

react 项目编译慢的问题

  •  
  •   fushang318 · 2023-07-08 13:36:58 +08:00 · 1787 次点击
    这是一个创建于 493 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://github.com/Uniswap/interface 这种复杂度的前端项目,在 16 年 macbookpro ( i3 2.?G )上启动开发环境要 5 分钟以上,热更新要半分钟,但是 CPU 没有占满,闲置 30%以上 但是 M1 上启动和热更新只需要几秒钟 这是为啥

    15 条回复    2023-07-10 16:19:29 +08:00
    placeholder
        1
    placeholder  
       2023-07-08 16:43:41 +08:00
    因为 M1 性能更强了
    flyqie
        2
    flyqie  
       2023-07-08 16:45:08 +08:00
    你说,有没有可能瓶颈不是在 CPU ,而是在硬盘?
    kljsandjb
        3
    kljsandjb  
       2023-07-08 16:49:36 +08:00 via iPhone
    CPU 没有占满大概是在 IOwait
    learningman
        4
    learningman  
       2023-07-08 21:45:53 +08:00 via Android
    换 yarn 的 pnp ,配个 swc
    IvanLi127
        5
    IvanLi127  
       2023-07-08 21:49:51 +08:00 via Android
    cpu 30% 是按单核算的还是全部?单核没吃满非话就可能是 io 不成。
    jikeytang
        6
    jikeytang  
       2023-07-08 22:15:14 +08:00
    用 vite 来开发,用 webpack 来打包,能够解决编译慢的问题。
    imqiyue
        7
    imqiyue  
       2023-07-08 22:37:58 +08:00
    @jikeytang 为什么不直接用 vite 构建?而费劲巴拉的去用 webpack ?是 vite 有什么坑嘛?
    b0x
        8
    b0x  
       2023-07-08 22:50:37 +08:00
    swc 提升很多,肉眼可见的那种
    leokun
        9
    leokun  
       2023-07-09 11:28:46 +08:00
    @jikeytang 同问,为什么要搞的这么割裂,如果想要开发一个插件,还需要做两份
    moonrailgun
        10
    moonrailgun  
       2023-07-10 00:40:30 +08:00
    才 5 分钟。我以前开发过开发环境启动要一个小时的。

    另外我会告诉你我的项目编译一次 docker 镜像要一个小时么?
    https://github.com/msgbyte/tailchat/actions/workflows/docker-publish.yml
    moonrailgun
        11
    moonrailgun  
       2023-07-10 00:40:50 +08:00
    @moonrailgun 口胡。是启动开发环境要 10 分钟
    karott7
        12
    karott7  
       2023-07-10 10:37:20 +08:00
    编译慢是 import 写法不对,当你 import 一个文件的时候,构建工具会解析这个文件以及这个文件中所有引用的文件,然后做 tree shaking ,这是造成编译慢点主要原因之一
    如果你用过 lodash 项目的话,一般都推荐你用 import debounce from 'lodash/debounce' 写法,而不推荐 import { debounce } from 'loadsh'
    karott7
        13
    karott7  
       2023-07-10 10:38:25 +08:00
    @b0x 现在 vite 中的 esbuild 直接可以解析 jsx 文件,不用 swc 也已经很快了
    duan602728596
        14
    duan602728596  
       2023-07-10 11:24:43 +08:00
    babel 的编译,webpack 的 loader 和 plugin ,typescript 的 type check ,还有机器的老化,都是可能的原因。
    sampeng
        15
    sampeng  
       2023-07-10 16:19:29 +08:00
    因为你用 react
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3755 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 00:12 · PVG 08:12 · LAX 16:12 · JFK 19:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.