26 lines
673 B
JavaScript
26 lines
673 B
JavaScript
const glob = require('glob');
|
|
const fs = require('fs');
|
|
const compress = require('brotli/compress');
|
|
const skipSizeUnderBytes = 10000;
|
|
const dir = './dist/**';
|
|
|
|
const brotliSettings = {
|
|
extension: 'br',
|
|
skipLarger: true,
|
|
mode: 1, // 0 = generic, 1 = text, 2 = font (WOFF2)
|
|
quality: 10, // 0 - 11,
|
|
lgwin: 12 // default
|
|
};
|
|
|
|
glob(dir, function(er, files) {
|
|
files.forEach((file) => {
|
|
if (file.endsWith('.js') || file.endsWith('.css') || file.endsWith('.html')) {
|
|
const stat = fs.statSync(file).size;
|
|
if (stat > skipSizeUnderBytes) {
|
|
const result = compress(fs.readFileSync(file), brotliSettings);
|
|
fs.writeFileSync(file + '.br', result);
|
|
}
|
|
}
|
|
});
|
|
});
|