插件 (Plugin) 
如果说 Loader  是文件转换(预处理)的核心,那么插件(Plugin)则是 Rspack 整体构建流程的核心组成部分,大部分 Rspack 的原生实现依赖了 Rust 侧的插件系统。
对于 Node 的用户来说,你无需担心和 Rust 的 Interop 问题,因为 Rspack 会自动帮你处理好这些细节,你只需要关注如何使用插件即可。
示例 
编写一个插件 
插件的结构非常简单,只需要实现一个 apply 方法,这个方法接受一个 Compiler 实例,并会在 Rspack 插件初始化时被调用。详细的 API 可以参考 Plugin API 。
const   PLUGIN_NAME   =   'MyPlugin' ; 
 
 class   MyPlugin   { 
    apply ( compiler )   { 
     compiler . hooks . compilation . tap ( PLUGIN_NAME ,   ( compilation )   =>   { 
       console . log ( 'The Rspack build process is starting!' ) ; 
      } ) ; 
    } 
 } 
 
 module . exports  =  MyPlugin ;  
我们使用 CommonJS 风格的模块导出,这样在 rspack.config.js 中就可以直接使用 require 导入。
使用插件 
在 rspack.config.js 中使用已经兼容的 webpack-bundle-analyzer  :
rspack.config.js
const  BundleAnalyzerPlugin  = 
    require ( 'webpack-bundle-analyzer' ) . BundleAnalyzerPlugin ; 
 
 module . exports  =   { 
    plugins :   [ new   BundleAnalyzerPlugin ( ) ] , 
 } ;  
请参考 Plugin 兼容  来了解完成 Rspack 兼容性测试的插件列表。
类型定义 
如果你使用 TypeScript 来编写 Rspack 插件,可以引入 Compiler 和 RspackPluginInstance 来声明插件的类型:
import   type   {  Compiler ,  RspackPluginInstance  }   from   '@rspack/core' ; 
 
 const   PLUGIN_NAME   =   'MyPlugin' ; 
 
 class   MyPlugin   implements   RspackPluginInstance   { 
    apply ( compiler :  Compiler )   { 
     compiler . hooks . compilation . tap ( PLUGIN_NAME ,   ( compilation )   =>   { 
        console . log ( 'The Rspack build process is starting!' ) ; 
      } ) ; 
    } 
 }