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.
npm install --save-dev webpack-redis-plugin
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.
Redis client configuration. All possible options can be found here.
Default: undefined
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
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() })