Home > @lynx-js/rspeedy > Config > mode

Config.mode property

Specify the build mode for Rsbuild and Rspack, as each mode has different default behavior and optimizations.

Signature:

mode?: 'development' | 'production' | 'none' | undefined;

Remarks

The default value of mode depends on the process.env.NODE_ENV environment variable:

  • If NODE_ENV is production, the default value is production.

  • If NODE_ENV is development, the default value is development.

  • If NODE_ENV has any other value, the default value is none.

  • If you set the value of mode, the value of NODE_ENV will be ignored.

When using Rspeedy's CLI:

  • rspeedy dev and rspeedy preview will set the default values of NODE_ENV and mode to 'development'.

  • rspeedy build will set the default values of NODE_ENV and mode to 'production'.

Example 1

If the value of mode is 'development':

  • Enable HMR and register the HotModuleReplacementPlugin.

  • Generate JavaScript source maps, but do not generate CSS source maps. See Output.sourceMap for details.

  • The process.env.NODE_ENV in the source code will be replaced with 'development'.

  • The import.meta.env.MODE in the source code will be replaced with 'development'.

  • The import.meta.env.DEV in the source code will be replaced with true.

  • The import.meta.env.PROD in the source code will be replaced with false.

Example 2

If the value of mode is 'production':

  • Enable JavaScript code minification and register the SwcJsMinimizerRspackPlugin.

  • Generated JavaScript and CSS filenames will have hash suffixes, see Output.filenameHash.

  • Generated CSS Modules classnames will be shorter, see CssModules.localIdentName.

  • Do not generate JavaScript and CSS source maps, see Output.sourceMap.

  • The process.env.NODE_ENV in the source code will be replaced with 'production'.

  • The import.meta.env.MODE in the source code will be replaced with 'production'.

  • The import.meta.env.DEV in the source code will be replaced with false.

  • The import.meta.env.PROD in the source code will be replaced with true.

除非另有说明,本项目采用知识共享署名 4.0 国际许可协议进行许可,代码示例采用 Apache License 2.0 许可协议进行许可。