Files
lingniu-platform/idp/frontend/vite/plugins/compression.ts
2026-02-09 11:24:51 +08:00

33 lines
910 B
TypeScript

import compression from 'vite-plugin-compression'
import type { Plugin } from 'vite'
interface ViteEnv {
VITE_BUILD_COMPRESS?: string
[key: string]: any
}
export default function createCompression(env: ViteEnv): Plugin[] {
const { VITE_BUILD_COMPRESS } = env
const plugin: Plugin[] = []
if (VITE_BUILD_COMPRESS) {
const compressList = VITE_BUILD_COMPRESS.split(',')
if (compressList.includes('gzip')) {
plugin.push(
compression({
ext: '.gz',
deleteOriginFile: false
})
)
}
if (compressList.includes('brotli')) {
plugin.push(
compression({
ext: '.br',
algorithm: 'brotliCompress',
deleteOriginFile: false
})
)
}
}
return plugin
}