Install
npm install --save-dev cache-loader
Usage
Add this loader in front of other (expensive) loaders to cache the result on disk.
webpack.config.js
moduleexports = module: rules: test: /\.ext$/ use: 'cache-loader' ...loaders include: path
⚠️ Note that there is an overhead for saving the reading and saving the cache file, so only use this loader to cache expensive loaders.
Options
Name | Type | Default | Description |
---|---|---|---|
cacheKey |
{Function(options, request) -> {String}} |
undefined |
Allows you to override default cache key generator |
cacheDirectory |
{String} |
path.resolve('.cache-loader') |
Provide a cache directory where cache items should be stored (used for default read/write implementation) |
cacheIdentifier |
{String} |
cache-loader:{version} {process.env.NODE_ENV} |
Provide an invalidation identifier which is used to generate the hashes. You can use it for extra dependencies of loaders (used for default read/write implementation) |
write |
{Function(cacheKey, data, callback) -> {void}} |
undefined |
Allows you to override default write cache data to file (e.g. Redis, memcached) |
read |
{Function(cacheKey, callback) -> {void}} |
undefined |
Allows you to override default read cache data from file |
Examples
webpack.config.js
moduleexports = module: rules: test: /\.js$/ use: 'cache-loader' 'babel-loader' include: path
Database Integration
webpack.config.js
// Or different database client - memcached, mongodb, ...const redis = ;const crypto = ; // ...// connect to client// ... const BUILD_CACHE_TIMEOUT = 24 * 3600; // 1 day { return crypto;} // Generate own cache key { return `build:cache:`;} // Read data from database and parse them { client;} // Write data to database under cacheKey { client;} moduleexports = module: rules: test: /\.js$/ use: loader: 'cache-loader' options: cacheKey read write 'babel-loader' include: path
Maintainers
Tobias Koppers |
Juho Vepsäläinen |
Joshua Wiens |
Michael Ciniawsky |
Alexander Krasnoyarov |