标签:
在 Node.js 中,可以使用 archiver
包来打包整个文件夹成一个 ZIP 文件。下面是一个示例,展示了如何使用 archiver
来实现这一功能。
1. 安装 archiver
包
首先,你需要确保你的项目中安装了 archiver
包。如果你还没有安装它,可以使用以下命令:
npm install archiver
Bash
2. 创建打包文件夹的脚本
接着,可以使用以下代码创建一个 Node.js 脚本,将指定的文件夹打包成 ZIP 文件:
const fs = require('fs');
const path = require('path');
const archiver = require('archiver');
function zipFolder(sourceFolder, outPath) {
const output = fs.createWriteStream(outPath);
const archive = archiver('zip', {
zlib: { level: 9 } // 设置压缩等级
});
output.on('close', function() {
console.log(`文件夹已成功打包为 ZIP 文件: ${outPath}, 总共 ${archive.pointer()} 字节.`);
});
archive.on('error', function(err) {
throw err;
});
// 将输出流与 archiver 连接
archive.pipe(output);
// 递归添加文件夹内容
archive.directory(sourceFolder, false);
// 完成归档
archive.finalize();
}
// 使用示例
const folderToZip = 'path/to/your/folder'; // 需打包的文件夹路径
const zipFileName = 'output.zip'; // 输出的 ZIP 文件名
zipFolder(folderToZip, zipFileName);
JavaScript
代码说明:
-
导入模块:
- 使用
fs
模块创建写入流。 - 使用
path
模块处理文件路径(在这个示例中未直接使用,但可以根据需要用到)。 - 使用
archiver
模块进行压缩。
- 使用
-
zipFolder
函数:- 接收要打包的文件夹路径
sourceFolder
和输出 ZIP 文件的路径outPath
。 - 创建文件的写入流
output
。 - 创建
archiver
实例,并设置压缩等级。 - 监听
close
和error
事件来处理日志和错误。 - 使用
archive.directory()
递归添加整个文件夹。 - 最后调用
archive.finalize()
完成归档。
- 接收要打包的文件夹路径
-
使用示例:
- 设置
folderToZip
和zipFileName
变量,分别指定要打包的文件夹和输出的 ZIP 文件名。 - 调用
zipFolder
函数开始打包。
- 设置
使用方式:
- 将上述代码保存为
zipFolder.js
(或其他你喜欢的文件名)。 - 修改
folderToZip
为你要打包的实际文件夹路径。 - 运行脚本:
node zipFolder.js
Bash
运行后,指定的文件夹将被压缩为 output.zip
文件。
标签: 来源:
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。