diff --git a/.travis.yml b/.travis.yml index f66b9ded3b..6e1ecb4252 100644 --- a/.travis.yml +++ b/.travis.yml @@ -47,7 +47,7 @@ jobs: (./scripts/start.sh -dev -t -ss -vjsapi alpha || exit 1;); fi - stage: Packaging test - script: ./scripts/packaging-test.sh + script: (npm run build-lib || exit 1;) && node ./scripts/upload-build-lib-in-cs.js -u $E2E_USERNAME -p $E2E_PASSWORD --host $E2E_HOST -f $TRAVIS_BUILD_NUMBER - stage: Update children projects dependency #Update generator-ng2-alfresco-app if: tag =~ .*beta.* script: ./scripts/update-project.sh -gnu -t $GITHUB_TOKEN -n generator-ng2-alfresco-app diff --git a/package-lock.json b/package-lock.json index 84797d92b0..760e458781 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1395,6 +1395,60 @@ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, + "archiver": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-3.0.0.tgz", + "integrity": "sha512-5QeR6Xc5hSA9X1rbQfcuQ6VZuUXOaEdB65Dhmk9duuRJHYif/ZyJfuyJqsQrj34PFjU5emv5/MmfgA8un06onw==", + "dev": true, + "requires": { + "archiver-utils": "^2.0.0", + "async": "^2.0.0", + "buffer-crc32": "^0.2.1", + "glob": "^7.0.0", + "readable-stream": "^2.0.0", + "tar-stream": "^1.5.0", + "zip-stream": "^2.0.1" + }, + "dependencies": { + "async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } + } + } + }, + "archiver-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.0.0.tgz", + "integrity": "sha512-JRBgcVvDX4Mwu2RBF8bBaHcQCSxab7afsxAPYDQ5W+19quIPP5CfKE7Ql+UHs9wYvwsaNR8oDuhtf5iqrKmzww==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "graceful-fs": "^4.1.0", + "lazystream": "^1.0.0", + "lodash.assign": "^4.2.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.toarray": "^4.4.0", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^2.0.0" + }, + "dependencies": { + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + } + } + }, "archy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", @@ -2174,6 +2228,16 @@ "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" }, + "binary": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", + "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", + "dev": true, + "requires": { + "buffers": "~0.1.1", + "chainsaw": "~0.1.0" + } + }, "binary-extensions": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", @@ -2194,7 +2258,6 @@ "resolved": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz", "integrity": "sha1-/cqHGplxOqANGeO7ukHER4emU5g=", "dev": true, - "optional": true, "requires": { "readable-stream": "~2.0.5" }, @@ -2203,15 +2266,13 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", - "dev": true, - "optional": true + "dev": true }, "readable-stream": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", "dev": true, - "optional": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -2225,8 +2286,7 @@ "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true, - "optional": true + "dev": true } } }, @@ -2926,6 +2986,12 @@ "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", "dev": true }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true + }, "buffer-fill": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", @@ -2956,6 +3022,12 @@ "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", "dev": true }, + "buffers": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", + "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", + "dev": true + }, "buildmail": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/buildmail/-/buildmail-4.0.1.tgz", @@ -3205,6 +3277,15 @@ "lazy-cache": "^1.0.3" } }, + "chainsaw": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", + "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", + "dev": true, + "requires": { + "traverse": ">=0.3.0 <0.4" + } + }, "chalk": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", @@ -3571,6 +3652,18 @@ "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", "dev": true }, + "compress-commons": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.2.tgz", + "integrity": "sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8=", + "dev": true, + "requires": { + "buffer-crc32": "^0.2.1", + "crc32-stream": "^2.0.0", + "normalize-path": "^2.0.0", + "readable-stream": "^2.0.0" + } + }, "compressible": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.14.tgz", @@ -3845,6 +3938,37 @@ "require-from-string": "^2.0.1" } }, + "crc": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", + "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", + "dev": true, + "requires": { + "buffer": "^5.1.0" + }, + "dependencies": { + "buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.0.tgz", + "integrity": "sha512-nUJyfChH7PMJy75eRDCCKtszSEFokUNXC1hNVSe+o+VdcgvDPLs20k3v8UXI8ruRYAJiYtyRea8mYyqPxoHWDw==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + } + } + }, + "crc32-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz", + "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=", + "dev": true, + "requires": { + "crc": "^3.4.4", + "readable-stream": "^2.0.0" + } + }, "create-ecdh": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", @@ -5636,6 +5760,12 @@ "null-check": "^1.0.0" } }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, "fs-extra": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", @@ -8660,6 +8790,15 @@ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", "dev": true }, + "lazystream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", + "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", + "dev": true, + "requires": { + "readable-stream": "^2.0.5" + } + }, "lcid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", @@ -9090,6 +9229,18 @@ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" }, + "lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", + "dev": true + }, + "lodash.difference": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", + "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", + "dev": true + }, "lodash.differencewith": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.differencewith/-/lodash.differencewith-4.5.0.tgz", @@ -9129,6 +9280,12 @@ "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=", "dev": true }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", + "dev": true + }, "lodash.keys": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", @@ -9185,6 +9342,18 @@ "lodash.escape": "^3.0.0" } }, + "lodash.toarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", + "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=", + "dev": true + }, + "lodash.union": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", + "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=", + "dev": true + }, "log-symbols": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", @@ -14753,6 +14922,21 @@ "inherits": "2" } }, + "tar-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.1.tgz", + "integrity": "sha512-IFLM5wp3QrJODQFPm6/to3LJZrONdBY/otxcvDIQzu217zKye6yVR3hhi9lAjrC2Z+m/j5oDxMPb1qcd8cIvpA==", + "dev": true, + "requires": { + "bl": "^1.0.0", + "buffer-alloc": "^1.1.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.0", + "xtend": "^4.0.0" + } + }, "temp": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/temp/-/temp-0.4.0.tgz", @@ -14901,6 +15085,12 @@ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", "dev": true }, + "to-buffer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", + "dev": true + }, "to-fast-properties": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", @@ -15035,6 +15225,12 @@ } } }, + "traverse": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", + "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=", + "dev": true + }, "tree-kill": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.0.tgz", @@ -15607,6 +15803,16 @@ "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", "dev": true }, + "unzip-stream": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unzip-stream/-/unzip-stream-0.3.0.tgz", + "integrity": "sha512-NG1h/MdGIX3HzyqMjyj1laBCmlPYhcO4xEy7gEqqzGiSLw7XqDQCnY4nYSn5XSaH8mQ6TFkaujrO8d/PIZN85A==", + "dev": true, + "requires": { + "binary": "^0.3.0", + "mkdirp": "^0.5.1" + } + }, "upath": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", @@ -16693,6 +16899,17 @@ "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=", "dev": true }, + "zip-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-2.0.1.tgz", + "integrity": "sha512-c+eUhhkDpaK87G/py74wvWLtz2kzMPNCCkUApkun50ssE0oQliIQzWpTnwjB+MTKVIf2tGzIgHyqW/Y+W77ecQ==", + "dev": true, + "requires": { + "archiver-utils": "^2.0.0", + "compress-commons": "^1.2.0", + "readable-stream": "^2.0.0" + } + }, "zone.js": { "version": "0.8.26", "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.26.tgz", diff --git a/package.json b/package.json index 17e8d1ec20..97c9ce99de 100644 --- a/package.json +++ b/package.json @@ -109,9 +109,9 @@ "@types/jasmine": "~2.8.3", "@types/jasminewd2": "~2.0.2", "@types/node": "6.0.90", - "adm-zip": "^0.4.11", "ajv-cli": "^3.0.0", "angular2-template-loader": "0.6.2", + "archiver": "^3.0.0", "astrolabe": "^0.3.6", "autoprefixer": "6.5.4", "bundlesize": "^0.15.3", @@ -168,6 +168,7 @@ "tslint": "5.9.1", "typedoc": "^0.11.1", "typescript": "2.9.2", + "unzip-stream": "^0.3.0", "url-join": "^4.0.0", "webpack-bundle-analyzer": "^2.13.1", "webpack-cli": "^3.1.0", diff --git a/scripts/download-build-in-cs.js b/scripts/download-build-in-cs.js index edb197ab5f..768bf63321 100755 --- a/scripts/download-build-in-cs.js +++ b/scripts/download-build-in-cs.js @@ -4,8 +4,8 @@ var http = require('http'); var fs = require('fs'); var path = require('path'); - -var AdmZip = require('adm-zip'); +var archiver = require('archiver'); +var unzip = require('unzip-stream'); replaceHrefInIndex = (folder) => { fs.readFile(`demo-shell/${folder}/index.html`, 'utf8', function (err, data) { @@ -61,13 +61,27 @@ async function main() { file.on('finish', async () => { console.log('Unzip Demo ' + path.join(__dirname, '../demo.zip')); - var zip = new AdmZip(path.join(__dirname, '../demo.zip')); - zip.extractAllToAsync(path.join(__dirname, '../demo-shell'), true, ()=>{ + setTimeout(() => { + fs.createReadStream(path.join(__dirname, '../demo.zip')) + .pipe(unzip.Extract({path: path.join(__dirname, '../demo-shell')})) + .on('finish', () => { + + setTimeout(() => { + let oldFolder = path.join(__dirname, `../demo-shell/demo.zip`) + let newFolder = path.join(__dirname, `../demo-shell/${outputFolder}`) + + fs.rename(oldFolder, newFolder, (err) => { + console.log('renamed complete'); + }); + + if (program.baseHref) { + replaceHrefInIndex(outputFolder); + } + }, 10000); + + }) + }, 10000); - if (program.baseHref) { - replaceHrefInIndex(outputFolder); - } - }); }); }); diff --git a/scripts/download-build-lib-in-cs.js b/scripts/download-build-lib-in-cs.js index d4c4995973..955e5cc026 100644 --- a/scripts/download-build-lib-in-cs.js +++ b/scripts/download-build-lib-in-cs.js @@ -4,36 +4,36 @@ var http = require('http'); var fs = require('fs'); var path = require('path'); +var archiver = require('archiver'); +var unzip = require('unzip-stream'); -var AdmZip = require('adm-zip'); +var exec = require('child_process').exec; var alfrescoJsApi; downloadZip = async (url, outputFolder, pacakge) => { - console.log(`Download ${pacakge}`) + + console.log(`Download ${pacakge}`) + console.log(`OutputFolder ${outputFolder}`) var file = fs.createWriteStream(`${pacakge}.zip`); return await http.get(`http://${url}`, (response) => { response.pipe(file); file.on('finish', async () => { setTimeout(() => { - - var zip = new AdmZip(path.join(__dirname, `../${pacakge}.zip`)); console.log(`Unzip ${pacakge}` + path.join(__dirname, `../${pacakge}.zip`)); + fs.createReadStream(path.join(__dirname, `../${pacakge}.zip`)) + .pipe(unzip.Extract({path: path.join(__dirname, `../${outputFolder}/@alfresco/`)})) + .on('finish', () => { + setTimeout(() => { + let oldFolder = path.join(__dirname, `../${outputFolder}/@alfresco/${pacakge}`) + let newFolder = path.join(__dirname, `../${outputFolder}/@alfresco/adf-${pacakge}`) - zip.extractAllToAsync(path.join(__dirname, '../', outputFolder, `@alfresco/`), true, () => { - - setTimeout(() => { - let oldFolder = path.join(__dirname, '../', outputFolder, `@alfresco/${pacakge}`) - let newFolder = path.join(__dirname, '../', outputFolder, `@alfresco/adf-${pacakge}`) - - fs.rename(oldFolder, newFolder, (err) => { - console.log('renamed complete'); - }); - - }, 10000); - - }); + fs.rename(oldFolder, newFolder, (err) => { + console.log('renamed complete'); + }); + }, 10000); + }) }) }); }); @@ -71,7 +71,7 @@ async function main() { }); if (!program.output) { - program.output = path.join(__dirname, '../node_modules/@alfresco/') + program.output = 'node_modules' } alfrescoJsApi.login(program.username, program.password); diff --git a/scripts/packaging-test.sh b/scripts/packaging-test.sh deleted file mode 100755 index 207c1e4f7c..0000000000 --- a/scripts/packaging-test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -echo "====== Build lib =====" - -npm run build-lib - -echo "====== Upload lib =====" - -node ./scripts/upload-build-lib-in-cs.js -u $E2E_USERNAME -p $E2E_PASSWORD --host $E2E_HOST -f $TRAVIS_BUILD_NUMBER diff --git a/scripts/upload-build-in-cs.js b/scripts/upload-build-in-cs.js index 875ab4d3e1..568685d2f1 100755 --- a/scripts/upload-build-in-cs.js +++ b/scripts/upload-build-in-cs.js @@ -3,8 +3,7 @@ var AlfrescoApi = require('alfresco-js-api-node'); var fs = require('fs'); var path = require('path'); -var AdmZip = require('adm-zip'); -var writeZip = new AdmZip(); +var archiver = require('archiver'); writeZipLib = async function (zipFolder) { @@ -12,8 +11,14 @@ writeZipLib = async function (zipFolder) { fs.mkdirSync(zipFolder); } - writeZip.addLocalFolder(path.join(__dirname, `../demo-shell/dist/`), 'dist'); - return writeZip.writeZip('demo-shell/zip/demo.zip'); + // create a file to stream archive data to. + let output = fs.createWriteStream(path.join(zipFolder, `demo.zip`)); + let archive = archiver('zip'); + + archive.pipe(output); + archive.directory(path.join(__dirname, `../demo-shell/dist/`), `demo.zip`); + + return archive.finalize(); }; async function main() { @@ -33,16 +38,12 @@ async function main() { let zipFolder = path.join(__dirname, '../demo-shell/zip/'); - console.log('Write demo zip'); - await this.writeZipLib(zipFolder); let files = fs.readdirSync(path.join(__dirname, '../demo-shell/zip')); if (files && files.length > 0) { - console.log('Upload demo zip'); - alfrescoJsApi.login(program.username, program.password); let folder; diff --git a/scripts/upload-build-lib-in-cs.js b/scripts/upload-build-lib-in-cs.js old mode 100755 new mode 100644 index 350b9b1a6d..27001e5fba --- a/scripts/upload-build-lib-in-cs.js +++ b/scripts/upload-build-lib-in-cs.js @@ -3,8 +3,7 @@ var AlfrescoApi = require('alfresco-js-api-node'); var fs = require('fs'); var path = require('path'); -var AdmZip = require('adm-zip'); -var writeZip = new AdmZip(); +var archiver = require('archiver'); writeZipLib = async function (zipName, zipFolder) { @@ -12,8 +11,14 @@ writeZipLib = async function (zipName, zipFolder) { fs.mkdirSync(zipFolder); } - writeZip.addFile(path.join(__dirname, `../lib/dist/${zipName}`), Buffer.alloc(0)); - return writeZip.writeZip(`${zipName}.zip`); + // create a file to stream archive data to. + let output = fs.createWriteStream(path.join(zipFolder, `${zipName}.zip`)); + let archive = archiver('zip'); + + archive.pipe(output); + archive.directory(path.join(__dirname, `../lib/dist/${zipName}`), zipName); + + return archive.finalize(); }; async function main() {