cvsip-web/build/plugins/compress.ts

38 lines
1.1 KiB
TypeScript
Raw Normal View History

2024-11-20 16:33:02 +08:00
/**
* gzipVite
* https://github.com/anncwb/vite-plugin-compression
*/
import type { PluginOption } from 'vite';
import viteCompression from 'vite-plugin-compression';
/**
* compress
*/
export const configCompressPlugin = (viteEnv: ViteEnv): PluginOption | PluginOption[] => {
const { VITE_BUILD_COMPRESS = 'none', VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE = false } = viteEnv;
const compressList = VITE_BUILD_COMPRESS.split(',');
const plugins: PluginOption[] = [];
if (compressList.includes('gzip')) {
plugins.push(
viteCompression({
ext: '.gz',
algorithm: 'gzip',
deleteOriginFile: VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE,
})
);
}
if (compressList.includes('brotli')) {
plugins.push(
viteCompression({
ext: '.br',
algorithm: 'brotliCompress',
deleteOriginFile: VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE,
})
);
}
return plugins;
};