如何使用brotli npm模块压缩文件

How to use the brotli npm module to compress files

我想用this npm module来压缩文件,但是文档有点卡住了。

在 linux shell :

npm install brotli # npm@4.1.2 # brotli@1.3.1 

node # v6.9.4

然后节点内部:

var fs = require('fs');
var brotli = require('brotli');

brotli.compress(fs.readFileSync('myfile.txt')); // output is numbers

fs.writeFile('myfile.txt.br', brotli.compress(fs.readFileSync('bin.tar')), function(err){ if (!err) { console.log('It works!');}});
"It works!"

但是文件也满是数字...

我从来没有在节点中使用过这样的流和文件系统,有人可以解释一下如何处理这个吗?谢谢!

使用这个简单的 JS 代码,您可以压缩所选文件夹中的每个 *.html *.css *.js 文件(在本例中为 /dist

const fs = require('fs');
const compress = require('brotli/compress');

const brotliSettings = {
    extension: 'br',
    skipLarger: true,
    mode: 1, // 0 = generic, 1 = text, 2 = font (WOFF2)
    quality: 10, // 0 - 11,
    lgwin: 12 // default
};

fs.readdirSync('dist/').forEach(file => {
    if (file.endsWith('.js') || file.endsWith('.css') || file.endsWith('.html')) {
        const result = compress(fs.readFileSync('dist/' + file), brotliSettings);
        fs.writeFileSync('dist/' + file + '.br', result);
    }
});