Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request] 支持rspack #12293

Open
fyhhub opened this issue Apr 16, 2024 · 4 comments
Open

[Feature Request] 支持rspack #12293

fyhhub opened this issue Apr 16, 2024 · 4 comments

Comments

@fyhhub
Copy link

fyhhub commented Apr 16, 2024

Background

目前我们很多项目都接入了umi,但是webpack对于一些超大型项目还是力不从心,是否有考虑支持rspack呢。

可以增加一个@umijs/bundler-rspack ?

@byteHulk
Copy link

我正在做一些类似的工作,大家有多少人需要呢?

@fz6m
Copy link
Member

fz6m commented Apr 16, 2024

目前的一些信息:

  1. rspack 出了也很久了,最早 rspack 刚开源的时候,就有尝试用 rspack 构建的想法,那个时候 rspack 还不支持 swc 插件,大部分社区 webpack 插件不支持,同时 umi 的自定义内容比较多,比如 babel 插件、webpack 插件等,之所以 umi 可以快速的开始一个项目和一键开关各种功能,离不开加了很多自定义的东西,而 rspack 那个时候还不支持,所以当时就没有继续做这个的想法了,因为那个时候就算勉强做了也只是一个超大号阉割版 umi ,不如直接用 rspack cli 自己配置去构建。

  2. 后续蚂蚁内自己做了 rust 的构建工具 mako ,因为 2022 ~ 2023 年几乎所有大公司都在竞相开始 rust 的项目,mako 就是一个专门针对 umi 使用到的功能做的一个针对性的打包器,不是像 rspack 、farm 等那种通用为目的的,umi 用到了啥就做啥,专门为 umi 构建加速服务的 rust 构建工具,目前还没开源,前期分享见:Rust 在前端构建高性能前端打包工具 ,近年 5 月份应该还有一次公开分享:Rust 构建工具在蚂蚁的研发和落地

综合以上信息,如果你能局限在你用了哪些 umi 的功能,在一个满足自己需求的范围内,省略阉割掉那些不需要或者 rspack 还不兼容的功能之后,我理解是可以做一个用 rspack 构建的 umi 的;但 umi 目前来看是不会官方提供 rspack 集成,因为针对 umi 的 rust 构建工具已经在做,另外作为一个企业级的产品来提供的话,应该尽可能保持更多的可控、可拓展,功能尽可能保持完整,提供阉割版这种是不好的。

关于 mako 后续应该会开源公开可用,届时可以试试看,我不是蚂蚁的,对这里面了解不多。

另外:

  1. 我没试过 rspack 现在的 swc plugin 支持怎么样,但 swc 的 breaking change 和版本迭代太快,经常写的 swc 插件就用不了了要去频繁迭代,这是非常烦的,同时 wasm 的性能也是不如 .node 一体的,所以 swc 插件不是一个好的拓展方向,还是要把 swc 集成进来做一个一体化的 rust 构建器比较好。

  2. 如果你只是为了提速的话,像现代的构建工具,比如 swc / esbuild 已经可以用 loader 仅介入转译阶段,在转译阶段提速非常多了,构建缩短在一分钟或者几分钟都是没问题的,这已经很快了,你可以开启 srcTranspiler: 'swc' 用 swc 转译试试(有问题可以反馈);如果你要用全流程都是 rust 的打包工具,比如 rspack / rolldown 等,那就是在一分钟内去内卷了,其实一分钟和几分钟是一样的,因为通常情况也不会有多少超大项目,很多时候 cicd 里启动个容器或者拉取镜像、拉取源码等其他流程花费的时间都远远大于项目构建了,在分钟里内卷没太大的意义。

@fz6m

This comment was marked as resolved.

@xierenyuan

This comment was marked as resolved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants