0

我想使用这个 npm 模块来压缩文件,但我有点被文档卡住了。

在 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!"

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

我从来没有在节点中使用过这样的流和 fs,有人可以解释如何处理这个问题吗?谢谢!

4

1 回答 1

0

使用这个简单的 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);
    }
});
于 2019-06-05T10:17:40.130 回答