Webpack的生锈港? rspack,街区上的新孩子
#javascript #网络开发人员 #前端 #webpack

由Bontedance Web团队创建,RSPACK是一个基于Rust的Bundler。它以快速性能,与WebPack生态系统的互操作性,强大的自定义能力以及默认的互操作性而闻名 - 让用户在无需配置的情况下运行即将运行。它是为了解决业务环境中的艰巨挑战,改善了许多开发人员的经验。

我们正式开源的Rspack鼓励创新和团队合作。欢迎开发人员,技术迷以及对Web开发感兴趣的任何人加入我们。无论您是要探索,创建还是只是大型事物的一部分,Rspack都可以为您准备。

这个article被翻译,由@hardfist

撰写

rspack:深入的外观

为什么要开发rspack?

串行可与许多大型前端应用程序一起使用,约6,500次,需要很长时间才能建造,有时需要大约半小时。他们尝试了多种方法来更快地使过程,但是现有的社区工具中没有任何方法效果足够好。在深入研究了这个问题之后,他们发现没有适合他们所需的工具,因此他们决定创建Rspack

  1. 良好的开发启动性能:工程师通常每天多次运行NPM Run Dev命令。通过大规模的项目,每次跑步可能需要等待10分钟,这会带来很大的不便。因此,优化开发开始时间成为至关重要的必要性。
  2. 良好的构建性能:NPM Run Build命令经常在CI/CD环境中执行,确定应用程序生产的效率。在某些情况下,构建时间可能达到20到30分钟,强调需要更耗时的解决方案。
  3. 足够的灵活配置:bytedance的各种用户项目配置尚未完全统一,从而在将WebPack配置迁移到其他构建工具时会导致问题。需要具有WebPack灵活性的解决方案。
  4. 生产环境优化能力:在RSPACK之前,社区解决方案遇到了对生产环境优化的负面影响。确保在生产环境中优化产品是不可谈判的功能。

在检查了需要改进并研究现有解决方案的四个主要领域之后,很明显,没有什么能满足大型前端应用程序的特定需求。决定创建Rspack,尽管并非没有挑战。

rspack不仅仅是对现有问题的答案;它是一种定制的工具,经过精心设计,可满足大型项目和现代需求的独特构建要求。它代表着提高性能,灵活性和优化的周到的努力,希望在网络开发环境中产生有意义的影响。

雄心勃勃的Rspack:

对现有社区解决方案的彻底调查表明,没有一些工具可以满足所有确定的特定需求。这导致决定在内部开发Rspack。通过塑造应对这些挑战的工具,团队踏上了创新的道路,制定了定制的解决方案,该解决方案有可能成为不可忽视的力量。

社区合作和灵感

rspack的发展是社区中各个项目和个人的集体灵感,指导和支持的结果:

  • WebPack团队和社区:创建出色的包装工具和一个丰富的生态系统。
  • @sokra:对于Webpack项目的重要工作。
  • @scriptedalchemy:为创建模块联合会并帮助社区将Rspack连接起来。
  • SWC项目(由 @kdy1创建):在RSPACK的依赖性分析,代码转移和压缩中支持。
  • Esbuild Project(@evanw创建):启发Rspack的并发架构。
  • NAPI-RS项目(由@brooooooklyn创建):在RSPACK的节点结合实现中支持。
  • 包裹项目(由@devongovett创建):Rust Bundler的早期探险家,启发Rspack的增量构建体系结构。
  • Vite Project(由 @Å°ÖTISE创建):其与Rollup社区的兼容性设计启发了Rspack和WebPack社区的兼容性设计。
  • Rolldown Project(由Rolldown Team创建):探索使用Rust构建高性能Bundler +兼容滚动API的探索,启发了RSPACK的设计方向。
  • html-webpack-plugin项目(由@jantimon创建):rspack forks此forks以避免使用RSPACK中尚未支持的WebPack API。
  • turbopack项目:启发了基于AST的路径重写逻辑。

rspack的独特吸引力扩展到与现有的WebPack生态系统的互操作性,包括加载程序,API和Config。 Rspack虽然拥有无缝集成,却提供了一个额外的优势:它带有车轮。这意味着开发人员可以启动而无需与功能强大的工具相关的详细或复杂性。 Rspack的设计理念是在您需要时提供权力,使初学者可以使用它,但对于专家而言。

设置Rspack与众不同的是其对兼容性的承诺而不损害功能。 RSPACK背后的团队通过添加更多WebPack插件挂钩来不断扩展API表面,从而确保与现有生态系统保持广泛的对齐。这个周到的包容性提供了双重好处:它可以轻松地过渡到熟悉的WebPack的人,并为利用更高级功能的途径提供了途径。

bytedance的开发环境的特征是大量的软件组合和高速迭代过程,需要像RSPACK这样的敏捷和强大的工具。凭借能够快速编译大型代码库,与WebPack的生态系统集成,并且可以使易于入境和高级利用的设计证明自己是有价值的资产。

尝试rspack,查看存储库:GitHub rspack并检查官方网站:Rspack Official Website

Image description

Continue reading on JavaScript in Plain English »