nakarte

Source code of https://map.sikmir.ru (fork)
git clone git://git.sikmir.ru/nakarte
Log | Files | Refs | LICENSE

commit 3629ee334dfe51502f6cd57850b90c73cd2da1cf
parent e033148ea111dcde69706f7ced4be61cd8e64f8f
Author: Sergej Orlov <wladimirych@gmail.com>
Date:   Sat,  7 Dec 2019 11:44:05 +0100

config: invalidate cache when babel version or config changes

Diffstat:
Mwebpack/webpack.config.js | 16+++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/webpack/webpack.config.js b/webpack/webpack.config.js @@ -52,6 +52,15 @@ const babelConfig = { ] }; +function babelCacheIdentifier() { + const cacheLoaderVersion = require(path.resolve(__dirname, '../node_modules/cache-loader/package.json')).version; + const babelLoaderVersion = require(path.resolve(__dirname, '../node_modules/babel-loader/package.json')).version; + const babelCoreVersion = require(path.resolve(__dirname, '../node_modules/@babel/core/package.json')).version; + const babelPresetEnvVersion = require(path.resolve(__dirname, '../node_modules/@babel/preset-env/package.json')).version; + const babelConfigStr = JSON.stringify(babelConfig); + const browserlist = fs.readFileSync(path.resolve(__dirname, '../.browserslistrc')); + return `cache-loader: ${cacheLoaderVersion} ${babelLoaderVersion} ${babelCoreVersion} ${babelPresetEnvVersion} ${babelConfigStr} ${browserlist}`; +} const plugins = [ new CleanWebpackPlugin(), new CopyWebpackPlugin([ @@ -79,10 +88,11 @@ const plugins = [ }) ]; -const cacheLoader = { +const babelCacheLoader = { loader: 'cache-loader', options: { - cacheDirectory: 'build_cache' + cacheDirectory: 'build_cache', + cacheIdentifier: babelCacheIdentifier() } }; @@ -145,7 +155,7 @@ const loaders = [ /node_modules\/webpack/, ], loaders: [ - cacheLoader, + babelCacheLoader, { loader: 'babel-loader', options: babelConfig