记录一次使用node-bzip2解压bz2文件的过程,安装Visual Studio C++环境
-
代码
import fs from 'fs'; import bzip2 from 'node-bzip2'; const filePath = 'C:/Users/xxx.bz2'; fs.readFile(filePath, async (err, data) => { if (err) { console.error('读取文件出错:', err); return; } console.time('时间') // const input =new Uint8Array(data); const output = bzip2.decompress(data, { small: false }); // small代表是否用低内存占用模式 如果是true,解压时间会比较慢 console.log('decompressed length:', output.length); console.timeEnd('时间') // output 是 Uint8Array,可以按需处理 });
300M的Bzip2文件大约需要22s,已经比其他库的至少40多s快很多了,但是一个关键点是,下载npm 安装 node-bzip2时必须有 Visual Studio(含 C++ 工作负载)环境;
node-bzip2 需要编译 C++ 原生扩展,必须有 Visual Studio(含 C++ 工作负载)环境。你当前没有安装 Visual Studio 或没有安装 C++ 工作负载,所以无法编译安装。
1. 安装 Visual Studio(含 C++ 工作负载)
- 下载并安装 Visual Studio Community。
- 安装时勾选“使用C++的桌面开发”(Desktop development with C++)。
- 安装完成后,重启电脑,再重新执行
npm install node-bzip2。
进入网站,直接点击下载即可,
下载好后,双击安装

装前记得勾选 使用C++的桌面开发
安装完成后重新启动电脑
然后安装node-bzip2
yarn add node-bzip2
但是报错 cmake不是内部或外部命令
原因:
node-bzip2依赖 CMake 进行编译,但你的系统没有安装 CMake,导致编译失败。- 这类原生扩展在 Windows 下经常因为缺少依赖(如 CMake、Python、VS C++工具链等)而安装失败。
1. 安装 CMake
- 访问 CMake 官网 下载并安装 CMake。
- 安装时勾选“Add CMake to the system PATH”。
- 安装完成后,重启命令行窗口,输入
cmake --version,能看到版本号说明安装成功。 - 然后再尝试
npm install node-bzip2。

安装时勾选“Add CMake to the system PATH”。
然后用 cmake --version验证是否安装成功
之后继续安装node-bzip2
如果是electron项目,不建议使用node-bzip2,因为
兼容性风险
- 你打包时的操作系统、Node.js 版本、CPU 架构必须和用户机器完全一致,否则
.node文件可能无法加载或报错。 - 跨平台(Windows/macOS/Linux)或不同架构(x64/arm)时,必须分别在每个平台/架构下打包生成对应的安装包
node-bzip2 属于原生扩展模块,在跨平台项目(如 Electron 应用)中使用有明显兼容和分发风险,主要体现在:
- 每个平台/架构都要单独编译和打包,不能直接通用。
- 用户环境缺少编译工具时安装容易失败。
- Node.js 版本升级后可能需要重新编译。
推荐跨平台场景优先使用纯 JS 或 wasm 实现(如 unbzip2-stream、seek-bzip),这样可以大大简化分发和兼容性问题。
-

浙公网安备 33010602011771号