字节跳动发布自研 Web 构建工具 Rspack

b717c714100f690353406158f8086aa0.gif

作者 | Rspack Team  

Rspack 是由 ByteDance Web Infra 团队孵化的基于 Rust 语言开发的 Web 构建工具,拥有高性能、兼容 Webpack 生态、定制性强等多种优点,解决了我们在业务场景中遇到的非常多的问题,让很多开发者的体验有了质的提升。

787529b69dce48f10f4480b07988e384.png

  • 仓库地址:https://github.com/web-infra-dev/rspack

  • Quick Start:https://rspack.dev/guide/quick-start.html

  • 官网:https://rspack.dev

eb84bcb128f79388ae7b24fed71be1a8.png

为什么要做 Rspack ?

字节跳动内部存在非常多的大型前端应用,它们有着非常复杂的构建配置,十几分钟甚至半小时的构建耗时,我们尝试了多种方法去优化这些项目的编译速度,但是社区内存在的方案都或多或少存在一些问题,在对这些问题总结后,我们理解到工程师对构建工具的诉求是:

  • 良好的 Dev 启动性能,

    npm run dev

     是开发者每天需要运行很多次的命令,大型项目每次都需要等待 10 分钟,这对于工程师来说是非常痛苦的,所以优化 dev start 的时间是非常重要的;

  • 良好的 Build 性能,

    npm run build

     是在 CI/CD 环境中经常运行的指令,他决定了应用生产交付的效率,在生产环境中有些应用经常需要 20 ~ 30 分钟的构建时间,如果能缩短这里的耗时对开发链路也会非常有帮助;

  • 足够灵活的配置,用户工程的配置灵活多变,并没有做到完全的统一,在之前尝试将 Webpack 配置迁移到其他构建工具的过程中我们就遇到了非常多的问题,他们的配置都很难达到 Webpack 的灵活程度;

  • 生产环境的产物优化能力,在启动 Rspack 之前,我们实践了社区内的各种方案,但是他们都面临了生产环境一定程度负优化的情况,例如拆包拆的不够精细等等。所以生产环境产物优化是我们不可舍弃的功能点。

在明确这四点之后,我们调研了社区内的所有技术方案,发现并没有完全满足我们需求的,所以我们决定自研 Rspack。

695ea92f460445db1ccc6cabeb9bd0cf.png

目前 Rspack 是什么阶段

到今天为止 Rspack 已经开发 11 个月左右的时间了,虽然还处于比较早期的阶段,但是在我们验证中, Rspack 可以给项目带来 5 ~ 10 倍的编译效率提升,并且随着我们内置了越来越多的常见 features,性能也在逐步的提升中。

目前 Rspack 已经完成了 Webpack Loader 架构的支持,你可以在 Rspack 中使用很多你之前见到的 Loader,如 babel-loader、less-loader、svgr 等等。我们长期的目标是完整支持 Loader,未来可以直接在 Rspack 中使用社区内的 vue-loader。

当下 Rspack 对缓存的支持还比较简单,只有内存级别的缓存,未来我们会建设更强的缓存能力,包括可以写入硬盘的缓存,并且我们会把缓存做到可以跨设备共享和迁移,提升大型应用的缓存复用率。

Rspack 作为一个较为底层的基础设施,需要通过和社区内的各种上层框架结合才能在开发中获得发挥作用,目前 Rspack 已经接入了字节内的各种研发框架,外部的合作将逐渐开始,现已与 webpack 建立正式合作关系。

d650cd8d3d160e5cfff7fbbc0bbc525b.png

未来计划

完善基础能力

Rspack 虽然目前提供的能力能够满足大多数的项目使用,但是相比 Webpack 提供的丰富能力仍然相差很多,我们在未来会根据社区反馈,丰富 Rspack 的基础能力,满足更多的构建场景需求。

跟社区内的伙伴合作

Rspack 作为一个底层依赖解决了我们自己在工作中遇到的很多问题,相信他也可以解决社区的问题。我们非常愿意给社区内的框架团队一些支持,让大家发挥出来 Rspack 真正的性能优势。

提升插件能力

目前 Rspack 已经基本支持了 Loader API,和较少的 Webpack Plugin API,有很多 API 因为会产生较大的性能问题影响,所以我们暂时没有暴露,我们同时也在探索更高性能的插件通信方案,另外一部分 API 是因为我们精力问题暂时没有完成,欢迎大家 PR。在未来,我们会考虑提供高性能的动态插件方案,这些插件可以在提供自由定制的功能的同时,带给开发者更好的开发体验。

持续提升性能

目前 Rspack 是以性能为核心卖点的项目,所以在未来我们会做很多的事情以保持这个特性,如完善性能观测实验室,做好性能防劣化的工作;在更多的场景中使用并发/多核友好的算法;研发可跨平台共享的缓存体系;优化内存占用等等。

建设质量保障体系

在保障性能的同时,我们也会努力去保障 Rspack 的质量,Webpack 已经积累了非常丰富的测试用例,未来 Rspack 会复用 Webpack 已有的测试用例来完善自己的逻辑。建设更加完善的 CI 体系,和社区项目共建 Ecosystem CI 体系,保障项目升级不对上游的项目造成break,保障项目长期健康,并且在测试覆盖率上保障长期上升。

根据我们过去使用 Webpack 的经验,升级构建工具是一件耗时耗力的操作,我们也要请大家帮助我们贡献更多的测试用例,Rspack 会在迭代中尽量保持兼容。

df01787b2e81158f9ddb0350e02da74f.gif

☞小鹏汽车回应多名核心高管换血;OpenAI 总裁回应马斯克批评:我们犯了一个错误;GPT-4 或将于下周发布|极客头条
☞程序员该如何处理遗留软件?
☞“我们聘请 ChatGPT,让它当了一天 ML 工程师”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/15325.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows 在美国采用率迅速下跌,只剩 57%,已至历史最低点!

整理 | 苏宓 出品 | CSDN(ID:CSDNnews) 流水的操作系统,铁打的 Windows。不过,自 2018 年微软宣布分拆 Windows 部门拥抱 AI 之后,作为一项服务的 Windows,其王者地位还能持续多久,也…

微软 Bing 日活用户破 1 亿, 每日约 1/3 用户与 Bing Chat 交互

整理 | 朱珂欣 出品 | CSDN(ID:CSDNnews) 自 ChatGPT 横空出世以来,新一轮 AI 之战就似乎在无形中被燃起。 2 月 8 日,微软召开了一场闭门媒体发布会,推出了全新的、 由人工智能驱动的 Bing 搜索引擎和 Edg…

终于,GPT-4 将于下周问世!不仅能搞文字,还支持视频

整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 作为当前全球最火的生成式 AI,ChatGPT 仅用了 3 个月,就几乎搅动了整个科技圈,人们不断惊叹于 ChatGPT 的强大——但微软和 OpenAI 想要的,显然不至于此…

美团以 20.65 亿人民币收购光年之外

美团于香港联交所发布公告,称已完成光年之外境内外主体 100% 股权的收购,收购价约为 20.65 亿人民币 。 此前,光年之外联合创始人王慧文因身体原因,离岗就医及休养。美团在公告中对于并购的解释是,通过收购事项获得领先…

5000亿美元「flag」后,微软 CEO 暂缓员工加薪,现发帖感谢大家,员工:“发钱才实际!”...

整理 | 朱珂欣 出品 | CSDN程序人生(ID:coder_life) 打工人眼里,没有比「加薪」更能直击心巴! 据 Business Insider 报道,本周四,微软 CEO Satya Nadella 为感谢员工在 2023 财年里做出的贡献…

Rust 商标政策引争议,开发者:请放弃这个糟糕的政策吧!

整理 | 王子彧 出品 | CSDN(ID:CSDNnews) 近日,拥有 Rust 和 Cargo 商标的 Rust 基金会正在起草制定一项新商标政策提案。因提案中包含禁止在 Rust 工具或用 Rust 编写的软件的名称、域名或子域名中使用 Rust,引起了争…

GPT-4 让 Python 程序实现自修复 Bug,国外小哥将工具命名为“金刚狼”,并开源!...

整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 继开发者用 GPT-4 制造了一款“贾维斯”代码助手之后,另一位程序员小哥 BioBootloader 再次整活,他利用 Python 和 GPT-4 创建了一个名为 wolverine(金刚狼&#xff…

继「丑闻」之后,再爆 Stability AI 高层大换血!网友:“莫非是人心涣散?”...

整理 | 朱珂欣 出品 | CSDN程序人生(ID:coder_life) Stability AI 被爆「丑闻」不足一月,近日「新瓜」又来了! 据彭博社报道,两名高管从 Stability AI 离职,大名指向 —— 研究主管 David Ha…

AIGC行业周刊【2023-0709】【第六期】2023年世界人工智能大会大佬发言汇总

点击加入->【智子纪元-AIGC】技术交流群 一、大咖观点: 0709AI日报:2023年世界人工智能大会大佬发言汇总「5年内,人类程序员没了」,Stability AI老板大胆预测,一众大佬狂怼:大错特错,都懒得…

ChatGPT 给 Linux 工程师带来的革命

作者 | 宋宝华 出品 | CSDN(ID:CSDNnews) 近日,吴军老师写了一篇文章《 ChatGPT 不算新技术革命,带不来什么新机会》,笔者虽然是吴老师的忠实粉丝,吴老师的书几乎都读过,但是此文…

ChatGPT-5即将发布,上千名人士却紧急叫停

ChatGPT4还没有好好体验,比GPT4强大1000倍的ChatGPT5又即将发布!届时将彻底改变人工智能领域,并改变我们现有的世界 【ChatGPT 5简介】 OpenAI计划在2023年12月发布其最新且最强大的人工智能模型——ChatGPT 5。该模型具备人工通用智能的能力…

【回答问题】ChatGPT上线了!请使用MATLAB语言写一个谷歌 LaMDA模型?

首先,需要安装 MATLAB 并将 LaMDA 模型的代码下载到本地。然后,可以使用以下步骤来使用 MATLAB 运行 LaMDA 模型: 将 LaMDA 模型的文件夹路径添加到 MATLAB 的搜索路径中,可以使用以下命令实现: 复制 addpath(genpath(/path/to/LaMDA));创建一个用于存储 LaMDA 模型的变…

chatgpt赋能python:PythonSmop-将Matlab代码转换为Python代码的工具

Python Smop - 将Matlab代码转换为Python代码的工具 Python Smop是一个Python工具,用于将Matlab代码转换为Python代码。这对于想要将现有的Matlab代码转换为Python代码的开发人员来说是一个非常有用的工具。本文将介绍Python Smop的主要特点以及它如何帮助开发人员…

chatgpt赋能python:Python转化为MATLAB:一份综合指南

Python转化为MATLAB:一份综合指南 Python和MATLAB是两个领域广泛使用的编程语言。Python以其易学性、灵活性和功能强大而闻名,而MATLAB则以其数学和科学计算能力而广为人知。有时,你可能需要将Python代码转换为MATLAB,以便在MATL…

matlab+ChatGPT==无敌了,国内人人可使用【详细配置教程】

文章目录 基本配置代理配置视频教程 基本配置 查看下自己toolbox路径: toolboxdir(signal)如下: 源码文件matgpt(也可以去官网下载) 链接:https://pan.baidu.com/s/1_FTk4lvlQ2qo86OQSw044Q?pwdi9db 提取码&…

文末送书 | 系统讲解ChatGPT核心原理,教你构建高质量的提示指令

陈峥 著 电子工业出版社-博文视点 2023-06-01 ISBN: 9787121455865 定价: 100.00 元 新书推荐 🌟今日福利 |关于本书| 本书以独特的角度,深入浅出地介绍 ChatGPT、提示工程及自然语言处理等相关技术。在 内容上,本书科…

人工智能实训专场会顺利开展

随着人工智能产业应用研究院和成都东软学院的校企合作建立,近期学院组织计算机、软件技术等相关专业100余名师生参加研究院组织召开的人工智能实训专场会,学习和实操人工智能数据标注技能。 实训目标 人工智能是研究、开发用于模拟、延伸和扩展人的智能…