-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathzip.js
More file actions
42 lines (35 loc) · 1003 Bytes
/
zip.js
File metadata and controls
42 lines (35 loc) · 1003 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
'use strict'
var JSZip = require('jszip')
var fs = require('fs')
function archiver(key, callback) {
var zip = new JSZip()
var root = './build/' + key
//zip.file('ReactUI.js', fs.readFileSync(path + 'ReactUI.js'))
function walk (path) {
var dirList = fs.readdirSync(path)
dirList.forEach(function(item) {
if (fs.statSync(path + '/' + item).isDirectory()){
walk(path + '/' + item)
} else {
var sp = path.replace(root, '')
if (sp.length > 0) {
sp = sp.substr(1)
zip.folder(sp).file(item, fs.readFileSync(path + '/' + item))
} else {
zip.file(item, fs.readFileSync(path + '/' + item))
}
}
})
}
walk(root)
var data = zip.generate({type:"nodebuffer"})
fs.writeFile('./static/dist/' + key + '.zip', data, function () {
callback(null, 'dist/' + key + '.zip')
})
}
function zipThunk(key) {
return function (callback) {
archiver(key, callback)
}
}
module.exports = zipThunk