7 - 齐普 - 瓦斯姆
7-Zip编译为WASM并有标注. 基于7-Zip 24.09 (2024-11-29).
- 在任何支持WASM(浏览器或节点JS)的JavaScript环境中运行
- 支持全部文件格式
7zzCLI支持. - 默认情况下只包括标注NODEFS和WorkerFS适配器.
灵感来自 https://github.com/soconcial truth/7zip.js (中文(简体) )
使用量
命令行
npx 7z-wasm --help
或者说
npm i -g 7z-wasm
7z-wasm --help
作为模块
import SevenZip from "7z-wasm";
const sevenZip = await SevenZip();
const archiveData = new Uint8Array(100);
const archiveName = "archive.7z";
const stream = sevenZip.FS.open(archiveName, "w+");
sevenZip.FS.write(stream, archiveData, 0, archiveData.length);
sevenZip.FS.close(stream);
const filesToExtract = ["some-file.txt"];
sevenZip.callMain(["x", archiveName, ...filesToExtract]);
console.log(sevenZip.FS.readFile(filesToExtract[0]));
使用真实文件系统工作( 仅节点JS)
import SevenZip from "7z-wasm";
const mountRoot = "/nodefs";
sevenZip.FS.mkdir(mountRoot);
sevenZip.FS.mount(sevenZip.NODEFS, { root: "/real/root/folder" }, mountRoot);
sevenZip.FS.chdir(mountRoot + "/subfolder");
sevenZip.callMain(["x", "archive.7z", "some-file.txt"]);
大楼
由于GitHub上没有7-Zip源,构建过程依赖于下载来自GitHub的源 7-Zip网站并补齐它们,所以它们用emcc编译.
- 安装嵌入器
- 执行
./build(或.\build分别在Windows CMD上发布)
您可以通过自定义选项通过 env 文件( 例如见) 建设- umd.env(中文(简体) )