1.1.46 • Published 2 years ago

@yicode-helper/yite-chunk v1.1.46

Weekly downloads
-
License
-
Repository
github
Last release
2 years ago

vite-plugin-chunk-split

本插件改编自 vite-plugin-chunk-split

English | 中文

A vite plugin for better chunk splitting.

Usage

// use npm
npm i vite-plugin-chunk-split -D
// use yarn
yarn add vite-plugin-chunk-split -D
// use pnpm
pnpm i vite-plugin-chunk-split -D

Then you can use it in vite.config.ts:

// vite.config.ts
import { chunkSplitPlugin } from 'vite-plugin-chunk-split';

{
    plugins: [
        // ...
        chunkSplitPlugin()
    ];
}

Options

type packageInfo = string | RegExp;
type Strategy =
    // split by default
    | 'default'
    // all files will be together
    | 'all-in-one'
    // unbundle for your source files,vite will generate one chunk for every file
    | '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:

// vite.config.ts
import { chunkSplitPlugin } from 'vite-plugin-chunk-split';

{
  plugins: [
    // ...
    chunkSplitPlugin({
      strategy: 'single-vendor',
      customChunk: (args)=>{
        // files into pages directory is export in single files
        let { file, id, moduleId, root } = args;
        if(file.startsWith('src/pages/')){
          file = file.substring(4);
          file = file.replace(/\.[^.$]+$/, '');
          return file;
        }
        return null;
      }
      customSplitting: {
        // `react` and `react-dom` will be bundled together in the `react-vendor` chunk (with their dependencies, such as object-assign)
        'react-vendor': ['react', 'react-dom'],
        // Any file that includes `utils` in src dir will be bundled in the `utils` chunk
        'utils': [/src\/utils/]
      }
    })
  ]
}

By the way, you can achieve bundleless by the unbundle strategy:

// vite.config.ts
import { chunkSplitPlugin } from 'vite-plugin-chunk-split';

{
    plugins: [
        // ...
        chunkSplitPlugin({
            strategy: 'unbundle',
            customSplitting: {
                // All files in `src/container` will be merged together in `container` chunk
                container: [/src\/container/]
            }
        })
    ];
}

License

MIT

1.1.29

2 years ago

1.1.28

2 years ago

1.1.30

2 years ago

1.1.34

2 years ago

1.1.33

2 years ago

1.1.32

2 years ago

1.1.31

2 years ago

1.1.38

2 years ago

1.1.36

2 years ago

1.1.35

2 years ago

1.1.39

2 years ago

1.1.40

2 years ago

1.1.45

2 years ago

1.1.44

2 years ago

1.1.43

2 years ago

1.1.42

2 years ago

1.1.27

2 years ago

1.1.26

2 years ago

1.1.46

2 years ago

1.1.25

2 years ago

1.1.24

2 years ago

1.1.23

2 years ago

1.1.22

2 years ago

1.1.21

2 years ago

1.1.20

2 years ago

1.1.19

2 years ago

1.1.17

2 years ago

1.1.16

2 years ago

1.1.15

2 years ago

1.1.14

2 years ago

1.1.9

2 years ago

1.1.8

2 years ago

1.1.7

2 years ago

1.1.6

2 years ago

1.1.5

2 years ago

1.1.4

2 years ago

1.1.3

2 years ago

1.1.2

2 years ago

1.1.1

2 years ago