I am trying to pack files into a zip file using Adm-Zip
var AdmZip = require('adm-zip');
var pathToZip = 'build/release/Ext.zip';
var zip = new AdmZip();
zip.addLocalFile('background.js');
zip.addLocalFile('chrome_ex_oauth.html');
zip.addLocalFolder('images');
zip.writeZip(pathToZip);
However, all the files are getting added as folders inside the zip and the actual content is not getting zipped.
The Getting Started reference is below and this seems to be a very simple example which is not working as expected. What am I doing wrong? https://github.com/cthackers/adm-zip/wiki/ADM-ZIP-Introduction
So I did some digging: https://github.com/cthackers/adm-zip/blob/master/adm-zip.js#L275
addFile is ultimately called by addLocalFile, and that seems to be where the error is occurring, specifically on line 281 where it checks if the ZipEntry is a directory. The wrong flags are getting applied.
To get around this, I ended up calling addFile manually and specified the attributes myself, so that it wouldn't rely on auto-detection and incorrectly flag files as directories.
addFile(filePathInArchive, fileBuffer, '', 0644 << 16);
To get a fileBuffer yourself, you can use fs.readFile or fs.readFileSync