Skip to content

Commit 9e27fe2

Browse files
committed
��Now create an archive package on build
1 parent ecf8682 commit 9e27fe2

3 files changed

Lines changed: 141 additions & 5 deletions

File tree

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
"postinstall": "cd app && npm install"
1818
},
1919
"devDependencies": {
20+
"archiver": "^2.0.3",
2021
"chokidar": "^1.7.0",
2122
"cross-env": "^5.0.5",
2223
"del": "^3.0.0",

tasks/build.js

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
const where = require('./helper').where
2-
32
const package = require('../package.json')
3+
44
const packager = require('electron-packager')
5+
const archiver = require('archiver')
56
const path = require('path')
7+
const fs = require('fs')
68

79
const config = {
810
arch: 'x64',
@@ -27,6 +29,7 @@ function build () {
2729
console.log('\x1b[34mBuilding electron app(s)...\n\x1b[0m')
2830

2931
packager(config)
32+
.then(archiveAll)
3033
.then((appPaths) => {
3134
console.log('Build(s) successful!')
3235
console.log(appPaths)
@@ -36,3 +39,32 @@ function build () {
3639
console.error(error)
3740
})
3841
}
42+
43+
function archiveAll (appPaths) {
44+
return Promise.all(appPaths.map(archive))
45+
}
46+
47+
function archive (path) {
48+
const outputPath = `${path}.zip`
49+
50+
return new Promise((resolve, reject) => {
51+
const archive = archiver.create('zip', {})
52+
const output = fs.createWriteStream(outputPath)
53+
54+
output.on('close', () => {
55+
resolve(outputPath)
56+
})
57+
58+
archive.on('error', (error) => {
59+
reject(error)
60+
})
61+
62+
archive.on('warning', (error) => {
63+
reject(error)
64+
})
65+
66+
archive.pipe(output)
67+
archive.directory(path, false)
68+
archive.finalize()
69+
})
70+
}

yarn.lock

Lines changed: 107 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,31 @@ aproba@^1.0.3:
3232
version "1.1.2"
3333
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1"
3434

35+
archiver-utils@^1.3.0:
36+
version "1.3.0"
37+
resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-1.3.0.tgz#e50b4c09c70bf3d680e32ff1b7994e9f9d895174"
38+
dependencies:
39+
glob "^7.0.0"
40+
graceful-fs "^4.1.0"
41+
lazystream "^1.0.0"
42+
lodash "^4.8.0"
43+
normalize-path "^2.0.0"
44+
readable-stream "^2.0.0"
45+
46+
archiver@^2.0.3:
47+
version "2.0.3"
48+
resolved "https://registry.yarnpkg.com/archiver/-/archiver-2.0.3.tgz#b4360bb584af1437991942716f21d7c523d1dbbd"
49+
dependencies:
50+
archiver-utils "^1.3.0"
51+
async "^2.0.0"
52+
buffer-crc32 "^0.2.1"
53+
glob "^7.0.0"
54+
lodash "^4.8.0"
55+
readable-stream "^2.0.0"
56+
tar-stream "^1.5.0"
57+
walkdir "^0.0.11"
58+
zip-stream "^1.2.0"
59+
3560
are-we-there-yet@~1.1.2:
3661
version "1.1.4"
3762
resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d"
@@ -102,6 +127,12 @@ async-each@^1.0.0:
102127
version "1.0.1"
103128
resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d"
104129

130+
async@^2.0.0:
131+
version "2.5.0"
132+
resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d"
133+
dependencies:
134+
lodash "^4.14.0"
135+
105136
asynckit@^0.4.0:
106137
version "0.4.0"
107138
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
@@ -143,6 +174,12 @@ binary@^0.3.0:
143174
buffers "~0.1.1"
144175
chainsaw "~0.1.0"
145176

177+
bl@^1.0.0:
178+
version "1.2.1"
179+
resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.1.tgz#cac328f7bee45730d404b692203fcb590e172d5e"
180+
dependencies:
181+
readable-stream "^2.0.5"
182+
146183
block-stream@*:
147184
version "0.0.9"
148185
resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a"
@@ -174,6 +211,10 @@ braces@^1.8.2:
174211
preserve "^0.2.0"
175212
repeat-element "^1.1.2"
176213

214+
buffer-crc32@^0.2.1:
215+
version "0.2.13"
216+
resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
217+
177218
buffers@~0.1.1:
178219
version "0.1.1"
179220
resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb"
@@ -248,6 +289,15 @@ compare-version@^0.1.2:
248289
version "0.1.2"
249290
resolved "https://registry.yarnpkg.com/compare-version/-/compare-version-0.1.2.tgz#0162ec2d9351f5ddd59a9202cba935366a725080"
250291

292+
compress-commons@^1.2.0:
293+
version "1.2.0"
294+
resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-1.2.0.tgz#58587092ef20d37cb58baf000112c9278ff73b9f"
295+
dependencies:
296+
buffer-crc32 "^0.2.1"
297+
crc32-stream "^2.0.0"
298+
normalize-path "^2.0.0"
299+
readable-stream "^2.0.0"
300+
251301
concat-map@0.0.1:
252302
version "0.0.1"
253303
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
@@ -268,6 +318,17 @@ core-util-is@1.0.2, core-util-is@~1.0.0:
268318
version "1.0.2"
269319
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
270320

321+
crc32-stream@^2.0.0:
322+
version "2.0.0"
323+
resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-2.0.0.tgz#e3cdd3b4df3168dd74e3de3fbbcb7b297fe908f4"
324+
dependencies:
325+
crc "^3.4.4"
326+
readable-stream "^2.0.0"
327+
328+
crc@^3.4.4:
329+
version "3.4.4"
330+
resolved "https://registry.yarnpkg.com/crc/-/crc-3.4.4.tgz#9da1e980e3bd44fc5c93bf5ab3da3378d85e466b"
331+
271332
cross-env@^5.0.5:
272333
version "5.0.5"
273334
resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.0.5.tgz#4383d364d9660873dd185b398af3bfef5efffef3"
@@ -445,6 +506,12 @@ electron@^1.7.5:
445506
electron-download "^3.0.1"
446507
extract-zip "^1.0.3"
447508

509+
end-of-stream@^1.0.0:
510+
version "1.4.0"
511+
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.0.tgz#7a90d833efda6cfa6eac0f4949dbb0fad3a63206"
512+
dependencies:
513+
once "^1.4.0"
514+
448515
env-paths@^1.0.0:
449516
version "1.0.0"
450517
resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz#4168133b42bb05c38a35b1ae4397c8298ab369e0"
@@ -671,7 +738,7 @@ glob@^6.0.4:
671738
once "^1.3.0"
672739
path-is-absolute "^1.0.0"
673740

674-
glob@^7.0.3, glob@^7.0.5:
741+
glob@^7.0.0, glob@^7.0.3, glob@^7.0.5:
675742
version "7.1.2"
676743
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
677744
dependencies:
@@ -692,7 +759,7 @@ globby@^6.1.0:
692759
pify "^2.0.0"
693760
pinkie-promise "^2.0.0"
694761

695-
graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
762+
graceful-fs@^4.1.0, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
696763
version "4.1.11"
697764
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
698765

@@ -959,6 +1026,12 @@ klaw@^1.0.0:
9591026
optionalDependencies:
9601027
graceful-fs "^4.1.9"
9611028

1029+
lazystream@^1.0.0:
1030+
version "1.0.0"
1031+
resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4"
1032+
dependencies:
1033+
readable-stream "^2.0.5"
1034+
9621035
load-json-file@^1.0.0:
9631036
version "1.1.0"
9641037
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
@@ -989,6 +1062,10 @@ lodash.get@^4.0.0:
9891062
version "4.4.2"
9901063
resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
9911064

1065+
lodash@^4.14.0, lodash@^4.8.0:
1066+
version "4.17.4"
1067+
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
1068+
9921069
loud-rejection@^1.0.0:
9931070
version "1.6.0"
9941071
resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f"
@@ -1192,7 +1269,7 @@ object.omit@^2.0.0:
11921269
for-own "^0.1.4"
11931270
is-extendable "^0.1.1"
11941271

1195-
once@^1.3.0, once@^1.3.3:
1272+
once@^1.3.0, once@^1.3.3, once@^1.4.0:
11961273
version "1.4.0"
11971274
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
11981275
dependencies:
@@ -1421,7 +1498,7 @@ readable-stream@^1.1.8, readable-stream@~1.1.9:
14211498
isarray "0.0.1"
14221499
string_decoder "~0.10.x"
14231500

1424-
readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2:
1501+
readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2:
14251502
version "2.3.3"
14261503
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c"
14271504
dependencies:
@@ -1674,6 +1751,15 @@ tar-pack@^3.4.0:
16741751
tar "^2.2.1"
16751752
uid-number "^0.0.6"
16761753

1754+
tar-stream@^1.5.0:
1755+
version "1.5.4"
1756+
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.4.tgz#36549cf04ed1aee9b2a30c0143252238daf94016"
1757+
dependencies:
1758+
bl "^1.0.0"
1759+
end-of-stream "^1.0.0"
1760+
readable-stream "^2.0.0"
1761+
xtend "^4.0.0"
1762+
16771763
tar@^2.2.1:
16781764
version "2.2.1"
16791765
resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1"
@@ -1774,6 +1860,10 @@ verror@1.10.0:
17741860
core-util-is "1.0.2"
17751861
extsprintf "^1.2.0"
17761862

1863+
walkdir@^0.0.11:
1864+
version "0.0.11"
1865+
resolved "https://registry.yarnpkg.com/walkdir/-/walkdir-0.0.11.tgz#a16d025eb931bd03b52f308caed0f40fcebe9532"
1866+
17771867
which@^1.2.9:
17781868
version "1.3.0"
17791869
resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
@@ -1798,6 +1888,10 @@ xmldom@0.1.x:
17981888
version "0.1.27"
17991889
resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9"
18001890

1891+
xtend@^4.0.0:
1892+
version "4.0.1"
1893+
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
1894+
18011895
xtend@~2.1.1:
18021896
version "2.1.2"
18031897
resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b"
@@ -1813,3 +1907,12 @@ yauzl@2.4.1:
18131907
resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005"
18141908
dependencies:
18151909
fd-slicer "~1.0.1"
1910+
1911+
zip-stream@^1.2.0:
1912+
version "1.2.0"
1913+
resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-1.2.0.tgz#a8bc45f4c1b49699c6b90198baacaacdbcd4ba04"
1914+
dependencies:
1915+
archiver-utils "^1.3.0"
1916+
compress-commons "^1.2.0"
1917+
lodash "^4.8.0"
1918+
readable-stream "^2.0.0"

0 commit comments

Comments
 (0)