react 项目编译慢的问题

354 天前
 fushang318

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

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

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

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

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

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

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

© 2021 V2EX