32 lines
834 B
TypeScript
32 lines
834 B
TypeScript
import { defineConfig } from "vite"
|
|
import vuePlugin from "@vitejs/plugin-vue"
|
|
import windicssPlugin from "vite-plugin-windicss"
|
|
import pagesPlugin from "vite-plugin-pages"
|
|
import iconsPlugin from "unplugin-icons/vite"
|
|
import gzipPlugin from "rollup-plugin-gzip"
|
|
import { promisify } from "node:util"
|
|
import { brotliCompress as brotliCompressCallback } from "node:zlib"
|
|
|
|
const brotliCompress = promisify(brotliCompressCallback)
|
|
|
|
export default defineConfig({
|
|
plugins: [
|
|
vuePlugin(),
|
|
pagesPlugin(),
|
|
windicssPlugin(),
|
|
iconsPlugin(),
|
|
gzipPlugin({
|
|
minSize: 1501
|
|
}),
|
|
gzipPlugin({
|
|
minSize: 1501,
|
|
fileName: ".br",
|
|
customCompression: content => brotliCompress(Buffer.from(content))
|
|
})
|
|
],
|
|
// @ts-expect-error
|
|
ssgOptions: {
|
|
formatting: "minify",
|
|
dirStyle: "nested"
|
|
}
|
|
})
|