该命令应在linux或Windows环境中运行,而不依赖于任何其他库。
答案 0 :(得分:0)
非常感谢在Unix / Linux世界中,我们可以依靠unzip
的出现。假定具有Powershell v5的“现代” Windows,有一个等效的Expand-Archive
命令。
const os = require("os");
const util = require("util");
const exec = util.promisify(require("child_process").exec);
async function unzip(file, destination) {
const expandCommand = os.platform() === "win32" ?
`powershell -command "& {&'Expand-Archive' ${file} -DestinationPath ${destination}}"` :
`unzip ${file} -d ${destination}`;
const { stdout, stderr } = await exec(expandCommand);
return stderr ? Promise.reject(stderr) : stdout;
}
唯一棘手的部分是如何通过exec调用powershell。