其他
Rspack v0.4.4 正式发布
相信坚持的力量!今天是坚持日更的第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",
minSize: 0,
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.
大家都在看