Vite Plugin Serial Runner
npm install vite-plugin-serial-runnerA Vite plugin that enables sequential execution of multiple plugins' lifecycle hooks during the build process.
- 🚀 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
Install using your preferred package manager:
``bash`
npm install vite-plugin-serial-runneror
yarn add vite-plugin-serial-runneror
pnpm add vite-plugin-serial-runner
`typescript
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
])
]
})
`
The plugin currently ensures sequential execution for these Vite hooks:
- configResolvedbuildStart
- buildEnd
- writeBundle
- closeBundle
-
Vite typically runs plugins' hooks in parallel. This plugin is useful when you need to:
1. Ensure one plugin completes its work before another begins
2. Manage dependencies between plugins
3. Control the exact order of build operations
4. Avoid race conditions in complex build setups
Creates a wrapper plugin that runs the specified plugins' hooks sequentially.
#### Parameters
- plugins: An array of Vite plugins to run sequentially
`typescript
// 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
])
]
})
``
Contributions are welcome! Please open an issue or submit a PR for any improvements.
MIT