gzip-cli
TypeScript icon, indicating that this package has built-in type declarations

1.2.0 • Public • Published

npm npm Travis Coveralls github

gzip-cli

gzip-cli provides CLI for compressing files by using compress algorithms such as Gzip and Brotli.

Install

npm i gzip-cli

CLI usage

Usage: 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 

CLI example

gzip dist/**/*.js

All *.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=br

All *.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.br
gzip source/**/*.js --output=dist

All *.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]

CLI example of using in a "scripts" section of your package.json

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"
}

Module usage

gzip(options)

options {Object}

  • patterns {string[]} Array of pattern to search for
  • ignorePatterns {string[]} <optional> Array of glob patterns to exclude matches
  • outputDir {string} <optional> Output dir
  • outputExtensions {string[]} <optional> Array of output file extension. br - for Brotli algorithm, gz or others - for Gzip algorithm. return: {Promise<void>} promise will be resolved when all resources are compressed.

Module example

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]

Module example of using in a Gulp task

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.

Requirements

Node.js >= 12

Package Sidebar

Install

npm i gzip-cli

Weekly Downloads

2,662

Version

1.2.0

License

MIT

Unpacked Size

26.8 kB

Total Files

8

Last publish

Collaborators

  • pakhuta