false
>= 1.3.0
用于开启 lazy compilation(即按需编译),基于 Rspack 的 lazy compilation 特性实现。
尽管 Rspack 本身具备良好的性能,但是面对具有大量模块的应用,其整体构建时间仍然可能不够理想。这是因为应用中的模块需要经过不同 loader 的编译,包括 postcss-loader
、sass-loader
、vue-loader
等,它们都会产生额外的编译开销。
Lazy compilation 是一个提升开发阶段启动性能的有效手段,它采用按需编译模块的方式,而非在启动时编译全部模块。这意味着开发者在启动 dev server 时,可以很快看到应用运行,并分次构建所需的模块。通过这种按需编译的机制,可以减少不必要的编译时间,且随着项目规模的扩大,编译时间不会显著增长,从而大幅提升开发体验。
Lazy compilation 仅在开发阶段有效,对于生产构建不会产生影响。
这等价于以下配置:
通过 lazyCompilation.entries
来控制是否 lazy 编译入口模块:
在启用 entries
选项后,当你启动 dev server 时, Rsbuild 不会编译所有的页面,而是仅在访问特定的页面时,才对该页面进行编译。
lazy 编译入口模块时,有以下注意事项:
通过 lazyCompilation.imports
来控制是否 lazy 编译 dynamic import 引入的异步模块:
开启 imports
选项后,所有的异步模块只有在被请求时才触发编译。如果你的项目是一个单页应用(SPA),并通过 dynamic import 进行了路由拆分,那么 dev 启动时间会有明显提升。