extract-zip
Unzip written in pure JavaScript. Extracts a zip into a directory. Available as a library or a command line program.
Uses the yauzl
ZIP parser.
Installation
Make sure you have Node 10 or greater installed.
Get the library:
npm install extract-zip --save
Install the command line program:
npm install extract-zip -g
JS API
const extract = require('extract-zip')
async function main () {
try {
await extract(source, { dir: target })
console.log('Extraction complete')
} catch (err) {
// handle any errors
}
}
Options
-
dir
(required) - the path to the directory where the extracted files are written -
encoding
- string - encoding to be used for file names, defaults toutf-8
-
defaultDirMode
- integer - Directory Mode (permissions), defaults to0o755
-
defaultFileMode
- integer - File Mode (permissions), defaults to0o644
-
onEntry
- function - if present, will be called with(entry, zipfile)
, entry is every entry from the zip file forwarded from theentry
event from yauzl.zipfile
is theyauzl
instance -
filter
- function - if present, will be called with(entry, zipfile)
, entry is every entry from the zip file forwarded from theentry
event from yauzl.zipfile
is theyauzl
instance. If the filter returnstrue
for a given file it will be extracted, else it will be skipped. It is possible to changeentry.fileName
in the filter to change the location of output files.
Default modes are only used if no permissions are set in the zip file.
CLI Usage
extract-zip foo.zip <targetDirectory> [--encoding=<encoding>]
If not specified, targetDirectory
will default to process.cwd()
.