查看原文
其他

Rspack v0.4.4 正式发布

小懒 FED实验室 2024-02-12
关注下方公众号,获取更多热点资讯

相信坚持的力量!今天是坚持日更的第111天,记得点击关注、点赞、在看支持呦

Rspack 是字节跳动 Web 工程体系团队开源的,基于 Rust 的高性能模块打包工具。

主要特性:

  • 🚀 启动速度极快: 基于 Rust 实现,构建速度极快,带给你极致的开发体验。
  • ⚡ 闪电般的 HMR: 内置增量编译机制,HMR 速度极快,完全胜任大型项目的开发。
  • 📦 兼容 webpack 生态: 针对 webpack 的架构和生态进行兼容,无需从头搭建生态。
  • 🎨 内置常见构建能力: 对 TypeScript、JSX、CSS、CSS Modules、Sass 等提供开箱即用的支持。
  • 🛠️ 默认生产优化: 默认内置多种优化策略,如 Tree Shaking、代码压缩等等。
  • 🎯 框架无关: 不和任何前端框架绑定,保证足够的灵活性。

历史版本:

  • v0.1 - Rspack 的第一个版本!
  • v0.2 - 完成了 loader 大部分 API 的兼容及新增一些插件的的钩子。
  • v0.3 - 和 webpack 架构对齐,原生支持了 Web Workers,将 css 默认处理行为和 webpack 进行了对齐,移除了很多内置的 css 转换逻辑。
  • v0.4 - 停止支持 Node.js 14,需要 Node.js 16+,重构 @rspack/core 中的导出 API。

12月21日 Rspack v0.4.4 正式发布,下面来看看该版本带来的特性更新:

亮点

🚀 在代码分割中支持 prefetch 和 preload

  • 新增 ChunkPrefetchPreloadFunctionRuntimeModule/ChunkPrefetchTriggerRuntimeModule/ChunkPrefetchStartupRuntimeModule 处理 prefetch 运行时逻辑。
  • 新增 ChunkPrefetchPreloadFunctionRuntimeModule/ChunkPreloadTriggerRuntimeModule 处理 preload 运行时逻辑。
  • 新增 ChunkPrefetchPreloadPlugin 以注入运行时模块和运行时需求
  • 通过 regexp 实现提取魔法注释,以支持 webpackPrefetch/webpackPreload
  • 新增 module.parser.javascript.dynamicImportPrefetch/dynamicImportPreload 以对所有动态导入进行特定的全局预取/预加载

🎉 允许向 splitChunks.cacheGroups 传递函数类型

支持传递函数类型后,开发者可以更灵活地控制代码分割行为。

optimization: {
  splitChunks: {
    chunks"all",
    minSize0,
    cacheGroups: {
      splitLib2: {
        chunks(chunk) {
          console.log(chunk);
          return chunk.name !== 'lib1';
        },
        test/shared\.js/,
        name"shared",
      },
    },
  },
},

🥪 允许解析 js 的 hashbang 语法

https://tc39.es/proposal-hashbang/out.html#sec-syntax

现在 rspack 可以处理如下文件:

#!/usr/bin/env node

import { foo } from "./lib";
console.log("index", foo);

❤️ 错误报告体验提升

Rspack :

Webpack:

🎉 令人兴奋的新功能

  • feat: 🎸 json tree shaking
  • feat: 添加脚本随机号
  • feat(es): 允许解析 js hashbang 语法
  • feat(runtime): 支持 module.parser.url=relative
  • feat(runtime): 支持 webpack_chunkname
  • feat: 支持 webpack_runtime_id
  • feat: 为 childCompiler 添加统计信息
  • feat: 添加函数类型的 splitChunks chunks
  • feat: 支持 rgb 颜色的 ansi-html
  • feat(cli): 支持设置 output.path
  • feat: 对齐 ExportImportedSpecifierDependency 初始片段
  • feat: 支持 eval 抽象相等
  • feat: 实现 mf 1.0 和 1.5 的同构化
  • feat: 在二进制表达式中求值数组和正则表达式
  • feat(runtime): 支持预取和预加载
  • feat: 支持伪webpack扩展和自定义模块类型
  • feat: 在二进制表达式中求值模板字符串
  • feat: 进行覆盖层的诊断
  • feat: 添加模块解析错误
  • feat: 求值 if-else 语句

此外还带来了 30+ 个问题修复及其他更新,更多可以参考 Github releases.

大家都在看

继续滑动看下一个

Rspack v0.4.4 正式发布

小懒 FED实验室
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存