跳到主要内容

认识

2025年01月22日
柏拉文
越努力,越幸运

一、认识


unplugin 是一个为构建工具(如 WebpackViteRollupRsPack 等)提供插件系统的框架,旨在简化插件的开发。它通过钩子函数将构建逻辑集成到构建工具的生命周期中。unplugin 的设计使得插件可以跨多个构建工具工作,UnPlugin 可以编写一个插件并在多个构建工具中重用它, 另外, UnPlugin 可以很方便的处理虚拟模块。UnPlugin 提供了一些钩子, 钩子如下:

二、语法


const unplugin = require('unplugin');

const plugin = unplugin.createUnplugin((options = {}) => {
return {
name: 'my-plugin',
// 插件中的钩子函数
someHook() {
// 钩子逻辑
}
};
});

const { raw, vite, farm, esbuild, rollup, rolldown, webpack,rspack } = unplugin;

// 如果是 Vite 插件
module.exports = vite;

// 如果是 RsPack 插件
module.exports = rspack;

// 如果是 EsBuild 插件
module.exports = esbuild;

// 如果是 Webpack 插件
module.exports = webpack;

// 等等

你在插件中定义的钩子会在适当的时机被调用,这些时机由所使用的构建工具(如 WebpackVite 等)决定。