You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
868 B
TypeScript
36 lines
868 B
TypeScript
12 months ago
|
/**
|
||
|
* Used to package and output gzip. Note that this does not work properly in Vite, the specific reason is still being investigated
|
||
|
* https://github.com/anncwb/vite-plugin-compression
|
||
|
*/
|
||
|
import type { PluginOption } from 'vite';
|
||
|
import compressPlugin from 'vite-plugin-compression';
|
||
|
|
||
|
export function configCompressPlugin(
|
||
|
compress: 'gzip' | 'brotli' | 'none',
|
||
|
deleteOriginFile = false,
|
||
|
): PluginOption | PluginOption[] {
|
||
|
const compressList = compress.split(',');
|
||
|
|
||
|
const plugins: PluginOption[] = [];
|
||
|
|
||
|
if (compressList.includes('gzip')) {
|
||
|
plugins.push(
|
||
|
compressPlugin({
|
||
|
ext: '.gz',
|
||
|
deleteOriginFile,
|
||
|
}),
|
||
|
);
|
||
|
}
|
||
|
|
||
|
if (compressList.includes('brotli')) {
|
||
|
plugins.push(
|
||
|
compressPlugin({
|
||
|
ext: '.br',
|
||
|
algorithm: 'brotliCompress',
|
||
|
deleteOriginFile,
|
||
|
}),
|
||
|
);
|
||
|
}
|
||
|
return plugins;
|
||
|
}
|