Blame view

build/vite/plugin/compress.ts 844 Bytes
1
2
/**
 * Used to package and output gzip. Note that this does not work properly in Vite, the specific reason is still being investigated
3
 * https://github.com/anncwb/vite-plugin-compression
4
5
6
7
 */
import type { Plugin } from 'vite';
import compressPlugin from 'vite-plugin-compression';
8
9
export function configCompressPlugin(
  compress: 'gzip' | 'brotli' | 'none',
vben authored
10
  deleteOriginFile = false,
11
): Plugin | Plugin[] {
12
13
14
15
16
17
18
19
  const compressList = compress.split(',');

  const plugins: Plugin[] = [];

  if (compressList.includes('gzip')) {
    plugins.push(
      compressPlugin({
        ext: '.gz',
20
        deleteOriginFile,
vben authored
21
      }),
22
23
    );
  }
24
25
26
27
28
29
  if (compressList.includes('brotli')) {
    plugins.push(
      compressPlugin({
        ext: '.br',
        algorithm: 'brotliCompress',
30
        deleteOriginFile,
vben authored
31
      }),
32
33
34
35
    );
  }
  return plugins;
}