CC 4.0 协议
本节内容派生于以下链接指向的内容 ,并遵守 CC BY 4.0 许可证的规定。
以下内容如果没有特殊声明,可以认为都是基于原内容的修改和删减后的结果。
Mode
- 类型:
'production' | 'development' | 'none'
模式:该选项用于设置 Rspack 的构建模式,以启用对应模式下的默认优化策略。
默认值
如果未显式指定 mode:
- 使用
@rspack/cli时,rspack dev和rspack serve默认是'development',rspack build默认是'production'。 - 使用 JavaScript API 时,
mode默认为'production'。
用法
你可以在 Rspack 配置中直接设置 mode:
rspack.config.mjs
在实际场景中,你可以根据 process.env.NODE_ENV 来动态设置 mode:
rspack.config.mjs
除此之外,你也可以在 Rspack 命令行中通过 --mode 选项来设置 mode:
Info
命令行中的 --mode 选项优先级高于 Rspack 配置中的 mode。
可选值
mode 有以下可选值:
production
在 production 模式下,Rspack 会自动启用以下优化策略:
- 将 optimization.nodeEnv 的默认值设置为
'production',从而把代码中的process.env.NODE_ENV替换为'production'。 - 将 optimization.minimize 的默认值设置为
true,并默认启用 JavaScript 和 CSS 压缩器。 - 将 optimization.concatenateModules 的默认值设置为
true,以启用模块串联(scope hoisting)。 - 将 optimization.sideEffects 的默认值设置为
true,结合包的sideEffects信息跳过无副作用模块。 - 将 optimization.usedExports、optimization.mangleExports 和 optimization.innerGraph 的默认值设置为
true,以增强 tree shaking 和导出压缩。 - 将 optimization.moduleIds 和 optimization.chunkIds 的默认值设置为
'deterministic',提升长期缓存稳定性。 - 将 optimization.realContentHash 的默认值设置为
true。
development
在 development 模式下,Rspack 会自动启用以下优化策略:
- 将 optimization.nodeEnv 的默认值设置为
'development',从而把代码中的process.env.NODE_ENV替换为'development'。 - 将 devtool 的默认值设置为
'cheap-module-source-map',便于调试。 - 将 cache 的默认值设置为
true以启用内存缓存,提升开发构建速度。 - 将 optimization.moduleIds 和 optimization.chunkIds 的默认值设置为
'named',生成更易读的模块和 chunk 名称。 - 将 optimization.emitOnErrors 的默认值设置为
true,即使存在构建错误也保留输出结果,方便本地调试。
none
当 mode 被设置为 'none' 时,Rspack 不会启用任何默认优化策略。

