vite-plugin-chunk-split
English | 中文
A vite plugin for better chunk splitting.
Usage
npm i vite-plugin-chunk-split -D
yarn add vite-plugin-chunk-split -D
pnpm i vite-plugin-chunk-split -D
Then you can use it in vite.config.ts:
import { chunkSplitPlugin } from 'vite-plugin-chunk-split';
{
plugins: [
chunkSplitPlugin()
]
}
Options
type packageInfo = string | RegExp;
type Strategy =
| 'default'
| 'all-in-one'
| 'unbundle';
export type CustomSplitting = Record<string, packageInfo[]>;
export interface ChunkSplitOptions {
strategy?: Strategy;
customSplitting?: CustomSplitting;
}
You can use the options to customize your splitting strategy, for example:
import { chunkSplitPlugin } from 'vite-plugin-chunk-split';
{
plugins: [
chunkSplitPlugin({
strategy: 'single-vendor',
customChunk: (args)=>{
let { file, id, moduleId, root } = args;
if(file.startsWith('src/pages/')){
file = file.substring(4);
file = file.replace(/\.[^.$]+$/, '');
return file;
}
return null;
}
customSplitting: {
'react-vendor': ['react', 'react-dom'],
'utils': [/src\/utils/]
}
})
]
}
By the way, you can achieve bundleless by the unbundle
strategy:
import { chunkSplitPlugin } from 'vite-plugin-chunk-split';
{
plugins: [
chunkSplitPlugin({
strategy: 'unbundle',
customSplitting: {
'container': [/src\/container/]
}
})
]
}
License
MIT