Ho bisogno di comprimere un'intera directory utilizzando Node.js. Attualmente sto usando node-zip e ogni volta che il processo viene eseguito genera un file ZIP non valido (come puoi vedere da this Github issue).È necessario comprimere un'intera directory utilizzando Node.js
C'è un'altra, migliore, opzione Node.js che mi permetterà di inserire una directory in ZIP?
EDIT: ho finito per usare archiver
writeZip = function(dir,name) {
var zip = new JSZip(),
code = zip.folder(dir),
output = zip.generate(),
filename = ['jsd-',name,'.zip'].join('');
fs.writeFileSync(baseDir + filename, output);
console.log('creating ' + filename);
};
valore di esempio per i parametri:
dir = /tmp/jsd-<randomstring>/
name = <randomstring>
UPDATE: Per coloro che chiedono la realizzazione ho usato, here's a link to my downloader:
Buona chiamata @booyaa. Grazie. – commadelimited
Qualcuno su Twitter ha suggerito l'API child_process e chiama semplicemente il sistema ZIP: http://nodejs.org/api/child_process.html – commadelimited
Ho provato l'approccio child_process. Ha due caveat. ** 1) ** il comando unix 'zip' include tutta la gerarchia di cartelle madri della directory di lavoro corrente nel file zippato. Questo potrebbe andar bene per te, non era per me. Anche modificare la directory di lavoro corrente in child_process in qualche modo non influisce sui risultati. ** 2) ** Per ovviare a questo problema, devi usare 'pushd' per saltare nella cartella zip e' zip -r', ma dato che 'pushd' è incorporato in bash e non in/bin/sh devi anche usare/bin/bash. Nel mio caso specifico ciò non era possibile. Solo un avviso. – johnozbay