首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用brotli npm模块压缩文件

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

Stack Overflow用户
提问于 2017-01-20 06:54:37
回答 1查看 2.3K关注 0票数 0

我想使用this npm module来压缩文件,但我有点被文档所困。

在linux shell中:

代码语言:javascript
复制
npm install brotli # npm@4.1.2 # brotli@1.3.1 

node # v6.9.4

然后在节点内部:

代码语言:javascript
复制
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!"

但文件里也全是数字...

我从来没有在node中使用过这样的stream和fs,有人能解释一下如何处理这个问题吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-05 18:17:40

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

代码语言:javascript
复制
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);
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41753210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档