Compress dist to
zip
,tar
,taz
. Powered by unplugin.
English | 简体中文
pnpm i -D unplugin-compression
Vite
// vite.config.ts
import Compression from "unplugin-compression/vite";
export default defineConfig({
plugins: [
Compression({
/* options */
}),
],
});
Rollup
// rollup.config.js
import Compression from "unplugin-compression/rollup";
export default {
plugins: [
Compression({
/* options */
}),
],
};
Webpack
// webpack.config.js
module.exports = {
/* ... */
plugins: [
require("unplugin-compression/webpack")({
/* options */
}),
],
};
Vue CLI
// vue.config.js
module.exports = {
configureWebpack: {
plugins: [
require("unplugin-compression/webpack")({
/* options */
}),
],
},
};
esbuild
// esbuild.config.js
import { build } from "esbuild";
build({
/* ... */
plugins: [
require("unplugin-compression/esbuild")({
/* options */
}),
],
});
Compression({
// you can use `zip`, `tar`, `taz`
adapter: "zip",
// relative paths to the directory to compress
source: "dist",
// relative paths to the directory to output
outDir: "./",
// compressed file name
formatter: "{{name}}.{{ext}}",
});
Global adapter. When the source does not set the adapter, the global adapter is used.
see compressing
The compress source, which can be set as string
or Source
or Source[]
If you use Source
and set adapter
or outDir
or formatter
options, it's cover global options.
Compression({
source: [
{
// zip adapter, dist.zip
source: "dist",
},
{
// tar adapter, output.tar
source: "output",
adapter: "tar",
},
],
});
The compressed file output dir.
The compressed filename formatter. default value is {{name}}.{{ext}}
.
interface template extends Omit<Source, "formatter"> {
name: string;
ext: string;
}
you can also set a handler
Compression({
formatter(source) {
return `Hello.${source.adapter}`;
},
});
the compressing package opts. see compressing
Compression({
compressingOptions: {
ignoreBase: true,
},
});