-
Notifications
You must be signed in to change notification settings - Fork 5
/
archiver.js
48 lines (40 loc) · 1.3 KB
/
archiver.js
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
43
44
45
46
47
48
/** 打包工具 */
// require modules
var fs = require('fs');
var archiver = require('archiver');
// create a file to stream archive data to.
var output = fs.createWriteStream(__dirname + '/target/webrtc.zip');
var archive = archiver('zip', {
store: true // Sets the compression method to STORE.
});
// listen for all archive data to be written
output.on('close', function() {
console.log(archive.pointer() + ' total bytes');
console.log('archiver has been finalized and the output file descriptor has closed.');
});
// good practice to catch this error explicitly
archive.on('error', function(err) {
throw err;
});
// pipe archive data to the file
archive.pipe(output);
// append files from a directory
archive.directory('config/');
archive.directory('keys/');
archive.directory('modules/');
archive.directory('public/');
archive.directory('routers/');
archive.directory('service/');
archive.directory('tpl/');
archive.directory('views/');
// append a file
archive.file('app-server.js');
archive.file('app-static.js');
archive.file('app-io-prd.js');
archive.file('app-ws-prd.js');
archive.file('apps.js');
archive.file('package.json');
// append files from a glob pattern
// archive.glob('subdir/*.txt');
// finalize the archive (ie we are done appending files but streams have to finish yet)
archive.finalize();