Plugins

  • 类型:
type Falsy = false | '' | 0 | null | undefined;

type Plugin =
  | RspackPluginInstance
  | RspackPluginFunction
  | WebpackPluginInstance
  | WebpackPluginFunction
  | Falsy;

type Plugins = Plugin[];
  • 默认值: []

plugins 选项用于注册一组 Rspack 或 webpack 插件来自定义构建过程。

请查看 插件页面 来了解在 Rspack 中使用插件的更多信息。

内置插件

Rspack 附带了许多内置插件,你可以通过 rspack.PluginName 访问这些插件。

例如,DefinePlugin 允许你在编译时将代码中的变量替换为其他值或表达式。你可以通过 rspack.DefinePlugin 来访问它,并使用 new 来创建插件实例:

rspack.config.mjs
import { rspack } from '@rspack/core';

export default {
  //...
  plugins: [
    new rspack.DefinePlugin({
      // 传入插件选项
    }),
  ],
};

webpack 插件

Rspack 致力于兼容 webpack 生态中的插件,让用户能够使用社区中经过验证的优秀功能。你可以查看 插件兼容列表 来获取已通过兼容性测试的 webpack 插件清单:

rspack.config.mjs
import { rspack } from '@rspack/core';
import HtmlWebpackPlugin from 'html-webpack-plugin';

export default {
  //...
  plugins: [new HtmlWebpackPlugin()],
};

禁用插件

Rspack 会忽略 plugins 数组中的 false''0nullundefined 这些值,这允许你更容易地禁用某个插件。

比如,仅在开发环境中启用 HotModuleReplacementPlugin

rspack.config.mjs
import { rspack } from '@rspack/core';

const isDev = process.env.NODE_ENV === 'development';

export default {
  plugins: [isDev && new rspack.HotModuleReplacementPlugin()],
};