react 项目编译慢的问题

2023-07-08 13:36:58 +08:00
 fushang318

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

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

另外我会告诉你我的项目编译一次 docker 镜像要一个小时么?
https://github.com/msgbyte/tailchat/actions/workflows/docker-publish.yml
moonrailgun
2023-07-10 00:40:50 +08:00
@moonrailgun 口胡。是启动开发环境要 10 分钟
karott7
2023-07-10 10:37:20 +08:00
编译慢是 import 写法不对,当你 import 一个文件的时候,构建工具会解析这个文件以及这个文件中所有引用的文件,然后做 tree shaking ,这是造成编译慢点主要原因之一
如果你用过 lodash 项目的话,一般都推荐你用 import debounce from 'lodash/debounce' 写法,而不推荐 import { debounce } from 'loadsh'
karott7
2023-07-10 10:38:25 +08:00
@b0x 现在 vite 中的 esbuild 直接可以解析 jsx 文件,不用 swc 也已经很快了
duan602728596
2023-07-10 11:24:43 +08:00
babel 的编译,webpack 的 loader 和 plugin ,typescript 的 type check ,还有机器的老化,都是可能的原因。
sampeng
2023-07-10 16:19:29 +08:00
因为你用 react

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

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

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

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

© 2021 V2EX