Files
WeChat-MiniProgram-AR-WASM/node_dev/main.js
AR Fashion 80744fe9de 1.0版
2021-12-03 02:49:17 +08:00

46 lines
1.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
使用方法在终端运行“node main.js”会将../go_dev/sample.wasm压缩为../package_lesson1/assets/sample.wasm.br。
*/
// 第三方的wasm版本brotli压缩和解压缩安装方法npm install wasm-brotli
var brotli = require('wasm-brotli');
// node自带的库
var fs = require('fs');
// node自带的库
var util = require('util');
// 将方法包装成promise风格以使用async/await。
const writeFileAsync = util.promisify(fs.writeFile);
const readFileAsync = util.promisify(fs.readFile);
// 压缩的示例
async function compress(){
const content = Buffer.from('Hello, world!', 'utf8');
const compressedContent = await brotli.compress(content);
await writeFileAsync('./hello_world.txt.br', compressedContent);
console.log('compress completed')
}
// 解压缩的示例
async function decompress(){
const compressedContent = await readFileAsync('./hello_world.txt.br');
const contenArray = await brotli.decompress(compressedContent);
const content = Buffer.from(contenArray).toString('utf8');
console.log('decompress result',content)
}
// 压缩文件的示例
async function compressFile(){
console.log('compress start...')
var start = Date.now()
const content = await readFileAsync('../go_dev/sample.wasm');
const compressedContent = await brotli.compress(content);
await writeFileAsync('../package_lesson1/assets/sample.wasm.br', compressedContent);
var end = Date.now()-start
console.log('compress completed. cost',end/1000,'seconds.')
}
compressFile()