Nincompoops Producing Methane

    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

    Install

    npm i gzip-cli

    DownloadsWeekly Downloads

    2,244

    Version

    1.2.0

    License

    MIT

    Unpacked Size

    26.8 kB

    Total Files

    8

    Last publish

    Collaborators

    • pakhuta