19 lines
585 B
JavaScript
19 lines
585 B
JavaScript
const crypto = require('crypto');
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
const CACHE_PATHS = [
|
|
'./config/webpack.config.js',
|
|
'./config/webpack.vendor.config.js',
|
|
'./package.json',
|
|
'./yarn.lock',
|
|
];
|
|
|
|
const resolvePath = (file) => path.resolve(__dirname, '../..', file);
|
|
const readFile = (file) => fs.readFileSync(file);
|
|
const fileHash = (buffer) => crypto.createHash('md5').update(buffer).digest('hex');
|
|
|
|
module.exports = () => {
|
|
const fileBuffers = CACHE_PATHS.map(resolvePath).map(readFile);
|
|
return fileHash(Buffer.concat(fileBuffers)).substr(0, 12);
|
|
};
|