本章节描述了 Builder 中的一些实验性配置,实验性配置可以开启 Builder 中尚未稳定的功能。
如果你在使用实验性功能时遇到问题,请先关闭对应的配置,并通过 GitHub Issues 进行反馈。
false
仅支持 webpack
用于开启延迟编译(即按需编译)的能力。当开启此配置项时,Builder 会进行延迟编译,提升项目的编译启动速度。
延迟编译只在开发环境下生效。
延迟编译 dynamic import 引入的异步模块:
开启 imports
选项后,所有的异步模块只有在被请求时才触发编译。如果你的项目是一个单页应用(SPA),并通过 dynamic import 进行了路由拆分,那么会有明显的编译提速效果。
除了延迟编译异步模块,你也可以选择同时延迟编译入口模块和异步模块。
以上配置也可以简化为:
开启 entries
选项后,当启动编译时,不会编译所有的页面,而是仅在路由跳转到对应的页面时,才对该页面进行编译。
使用延迟编译入口模块时,有以下注意事项:
当你开启延迟编译时,为了保证编译结果正常,Builder 会在开发环境下禁用拆包规则。这不会影响生产环境的打包产物,但会导致开发环境和生产环境的打包产物有一定差异。
Lazy Compilation 依赖 webpack 在本地启动的开发服务器,当你将某个域名代理到 localhost 进行开发时,Lazy Compilation 将无法正常工作。因此,如果你需要使用代理时,请禁用 Lazy Compilation。
考虑到 Lazy Compilation 仍然是 webpack 的实验性功能,因此你在使用过程中,可能会遇到一些潜在的问题,比如编译产物的行为变化,或是编译出现异常。
当你遇到这些问题时,可以参考 webpack 的 Issues 寻找解决方案,也可以关闭 lazyCompilation
配置项。
boolean | PluginSourceBuildOptions
false
MAJOR_VERSION.46.0
用于开启源码构建的能力。当开启此配置项时,Builder 会读取子项目 package.json 的 source
字段对应的源码文件,并进行编译。
更多信息可参考「源码构建模式」。
experiments.sourceBuild
底层基于 Rsbuild 的 Source Build 插件 实现,你可以传入插件选项,比如: