gzip-cli provides CLI for compressing files by using compress algorithms such as Gzip and Brotli.
npm i gzip-cliUsage: gzip [glob patterns]
Options:
-o, --output output directory
-e, --extension output file extension (default=gz). Also supported a few extensions in one command
-i, --ignore pattern or an array of glob patterns to exclude matches gzip dist/**/*.jsAll *.js files in folder dist and its sub-folders will be compressed by Gzip algorithm and put to the same folder, e.g.
gzip dist/**/*.js --extension=gz --extension=brAll *.js files in folder dist and its sub-folders will be compressed by Gzip and Brotli algorithm and put to the same folder, e.g.
dist/public/main.js -> dist/public/main.js.gz
dist/public/main.js -> dist/public/main.js.brgzip source/**/*.js --output=distAll *.js files in folder source and its sub-folders will be compressed by Gzip algorithm and put to the dist folder with saving file paths relative to a glob pattern base, e.g.
source/utils/fileUtils.js -> dist/utils/fileUtils.js.gz
gzip source/**/*.js --ignore=**/node_modules/**All *.js files in folder source and its sub-folders (except for "node_modules" and sub-folders) will be compressed and put to the same folder.
source/utils/fileUtils.js -> dist/utils/fileUtils.js.gz
source/node_modules/package_name/index.js -> [not processed]
Compress all *.js files in folder dist:
"scripts": {
"gzip": "gzip dist/**/*.js"
}Build Angular application and compress all *.js files in folder dist:
"scripts": {
"build": "ng build && gzip dist/**/*.js"
}Build React application and compress all *.js files in folder build by Gzip and Brotli algorithm:
"scripts": {
"build": "react-scripts build && gzip build/**/*.js --extension=gz --extension=br"
}options {Object}
patterns{string[]}Array of pattern to search forignorePatterns{string[]} <optional>Array of glob patterns to exclude matchesoutputDir{string} <optional>Output diroutputExtensions{string[]} <optional>Array of output file extension.br- for Brotli algorithm,gzor others - for Gzip algorithm. return:{Promise<void>}promise will be resolved when all resources are compressed.
gzip-cli can be used like a regular module:
const gzip = require('gzip-cli').gzip;
gzip({patterns: ['dist/public/**/*.{html,css,js,svg}'], outputExtensions: ['gz', 'br'], ignorePatterns: ['**/icons']});All *.html, *.css, *.js and *.svg files in folder dist/public and its sub-folders (except for sub-folders "icons") will be compressed by Gzip and Brotli algorithm and put to the same folder, e.g.
dist/public/main.js -> dist/public/main.js.gz
dist/public/main.js -> dist/public/main.js.br
dist/public/assets/icons/delete.svg -> [not processed]const gzip = require('gzip-cli').gzip;
gulp.task('compress-static-files', () => {
return gzip({patterns: ['dist/public/**/*.{html,css,js}'], outputExtensions: ['gz', 'br']});
});All *.html, *.css and *.js files in folder dist/public and its sub-folders will be compressed by Gzip and Brotli algorithm and put to the same folder.
Node.js >= 12