vite-plugin-serial-runner
v0.0.1
Published
Vite Plugin Serial Runner
Readme
Vite Plugin Serial Runner
A Vite plugin that enables sequential execution of multiple plugins' lifecycle hooks during the build process.
Features
- 🚀 Sequential Execution: Ensures plugins run their hooks in the specified order
- 🔒 Safe Hook Invocation: Handles both function and object-style hooks safely
- ⚡ Build Focused: Primarily designed for build-phase hooks
- 🛡️ Type Safe: Written in TypeScript with proper type definitions
Installation
Install using your preferred package manager:
npm install vite-plugin-serial-runner
# or
yarn add vite-plugin-serial-runner
# or
pnpm add vite-plugin-serial-runnerUsage
import { defineConfig } from 'vite'
import { serialPlugins } from 'vite-plugin-serial-runner'
import plugin1 from 'vite-plugin-1'
import plugin2 from 'vite-plugin-2'
export default defineConfig({
plugins: [
serialPlugins([
plugin1(),
plugin2()
// Add more plugins as needed
])
]
})Supported Hooks
The plugin currently ensures sequential execution for these Vite hooks:
configResolvedbuildStartbuildEndwriteBundlecloseBundle
Why Use This?
Vite typically runs plugins' hooks in parallel. This plugin is useful when you need to:
- Ensure one plugin completes its work before another begins
- Manage dependencies between plugins
- Control the exact order of build operations
- Avoid race conditions in complex build setups
API
serialPlugins(plugins: Plugin[]): Plugin
Creates a wrapper plugin that runs the specified plugins' hooks sequentially.
Parameters
plugins: An array of Vite plugins to run sequentially
Example Scenario
// vite.config.ts
import { defineConfig } from 'vite'
import { serialPlugins } from 'vite-plugin-serial-runner'
import analyze from 'rollup-plugin-visualizer'
import compress from 'vite-plugin-compression'
export default defineConfig({
plugins: [
serialPlugins([
analyze(), // First analyze the bundle
compress() // Then compress the output
])
]
})Contributing
Contributions are welcome! Please open an issue or submit a PR for any improvements.
License
MIT
