1.0.1 • Published 1 year ago

@averay/gulp-precompress v1.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

@averay/gulp-precompress

View code coverage on codecov

A Gulp plugin to generate precompressed assets to avoid on-the-fly webserver compression.

Compressed versions of static web assets are typically compressed on-demand by a webserver (e.g. with nginx's gzip module). While the webserver will usually cache the compressed versions, the need to respond quickly means a faster compression setting is typically used, resulting in slightly suboptimal compression ratios. This plugin allows generating the compressed versions ahead of time, which enables using slower, more aggressive compression settings.

Compressed versions are stored alongside the sources (e.g. styles.css will be accompanied by styles.css.gz & styles.css.br). The webserver then needs to be configured to use these static compressed files (e.g. with nginx's gzip_static module & brotli module).

Usage

Pipe the precompress plugin into the Gulp stream after all other plugins, directly before the final pipe to gulp.dest():

import precompress from '@averay/gulp-precompress';

gulp
  .src('...')
  .pipe(/* Apply other plugins */)
  .pipe(precompress())
  .pipe(gulp.dest('...'));

Options

The plugin can be configured by passing a single (optional) object argument to the function:

  • formats: Which compression formats to generate, and optional format-specific configuration (default: { brotli: {...}, gzip: {...} }see defaults)
  • skipLarger: Whether to omit outputting compressed files that are larger than the source file (default: true)
precompress({
  formats: { gzip: true, brotli: false },
  skipLarger: false,
});

MIT License

1.0.1

1 year ago

1.0.0

1 year ago