Skip to content

dokmic/webpack-redis-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

6135522 · Oct 14, 2021

History

24 Commits
Oct 14, 2021
Oct 9, 2021
Oct 9, 2021
May 30, 2018
Oct 9, 2021
May 30, 2018
Oct 9, 2021
Oct 14, 2021
Oct 14, 2021
Oct 9, 2021
Oct 9, 2021

Repository files navigation

Webpack Redis Plugin

NPM Tests Code Coverage

This Webpack plugin provides an ability to save your assets in Redis. The plugin supports all the Webpack versions and is tested with Webpack 2, 3, 4, and 5.

Install

npm install --save-dev webpack-redis-plugin

Usage

In your webpack.config.js:

const { WebpackRedisPlugin } = require('webpack-redis-plugin');
const sha1 = require('sha1');

module.exports = {
  entry: {
    page1: [
      './src/page1/index.js',
    ],
    page2: [
      './src/page2/index.js',
    ],
  },

  output: {
    filename: 'js/[name].js',
  },

  // ...

  plugins: [
    new WebpackRedisPlugin({
      config: {
        host: 'redis.example.com',
        password: 'password',
      },

      filter: (key, asset) => key === 'js/page1.js' && asset.size(),

      transform: (key, asset) => ({
        key: `${key}.sha1`,
        value: sha1(asset.source().toString()),
      }),
    }),
  ],
};

This config tells the plugin to filter out everything except non-empty js/page1.js and save a hash sum of the contents at the js/page1.js.sha1 key.

API

options.config

Redis client configuration. All possible options can be found here.

Default: undefined

options.filter

The callback function to filter keys/assets that will be set in Redis:

filter(key: string, asset: Source): boolean | Promise<boolean>;
  • key - relative asset path.
  • asset - Webpack asset.

Default: () => true

options.transform

The callback function transforms keys and values that will be set in Redis:

transform(key: string, asset: Source): KeyValuePair | Promise<KeyValuePair>
  • key - relative asset path.
  • asset - Webpack asset.

Default: (key, asset) => ({ key, value: asset.source() })