23 lines
596 B
JavaScript
23 lines
596 B
JavaScript
const fs = require('fs');
|
|
const path = require('path');
|
|
const crypto = require('crypto');
|
|
|
|
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);
|
|
};
|