decorate-vite-plugin
A utility library for decorating Vite plugins by enhancing their hook functions.
Installation
npm install decorate-vite-plugin --save-dev
Usage
This library allows you to decorate Vite plugins by adding additional functionality to their hook functions without modifying the original plugin code.
Support vite >= v3
.
Basic Example
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { decorateVitePluginOption } from 'decorate-vite-plugin'
export default defineConfig({
plugins: [
decorateVitePluginOption(
vue(),
'transform',
(originalTransform, plugin) => {
return function (code, id) {
console.log(`Transforming ${id}`)
return originalTransform?.call(plugin, code, id)
}
},
),
],
})
API
decoratePlugin
Decorates a specific hook of a single Vite plugin.
function decoratePlugin<T extends keyof Plugin>(
plugin: Plugin,
hookName: T,
decorator: (original: Plugin[T], plugin: Plugin) => Plugin[T],
): Plugin
decorateVitePluginOption
Decorates a hook across any valid Vite plugin option (single plugin, array of plugins, function, promise, etc.).
function decorateVitePluginOption<T extends keyof Plugin>(
pluginOption: PluginOption,
hookName: T,
decorator: (original: Plugin[T], plugin: Plugin) => Plugin[T],
): PluginOption