diff --git a/lib/downloader.js b/lib/downloader.js index dd09a6967..abee9ebfe 100644 --- a/lib/downloader.js +++ b/lib/downloader.js @@ -7,7 +7,7 @@ var zlib = require('zlib'); var tar = require('tar-fs'); var temp = require('temp'); var DecompressZip = require('decompress-zip'); -var ncp = require('ncp').ncp; +var ncp = require('graceful-ncp').ncp; var rimraf = require('rimraf'); // Automatically track and cleanup files at exit diff --git a/lib/index.js b/lib/index.js index 547e972de..b557d2e04 100644 --- a/lib/index.js +++ b/lib/index.js @@ -2,7 +2,7 @@ var Promise = require('bluebird'); var _ = require('lodash'); var inherits = require('inherits'); var EventEmitter = require('events').EventEmitter; -var fs = require('fs-extra'); +var fs = require('graceful-fs-extra'); var path = require('path'); var url = require('url'); var winresourcer = Promise.promisify(require('winresourcer')); diff --git a/lib/utils.js b/lib/utils.js index 0e383e519..bae35a45f 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -1,4 +1,4 @@ -var fs = require('fs-extra'); +var fs = require('graceful-fs-extra'); var path = require('path'); var _ = require('lodash'); var Promise = require('bluebird'); @@ -125,14 +125,23 @@ module.exports = { archive.on('error', reject); // Add the files - files.forEach(function (file) { + var filesBulk = []; + files.forEach(function(file){ if(file.dest === 'package.json' && platformSpecificManifest){ archive.append(platformSpecificManifest, {name: 'package.json'}); } - else { - archive.file(file.src, { name:file.dest }); + else + { + filesBulk.push({ + src: file.src, + data: { name: path.basename(file.dest) }, + expand: true, + flatten: true, + dest: path.dirname(file.dest) + }); } - }); + }) + archive.bulk(filesBulk) // Some logs archive.on('entry', function (file) { diff --git a/package.json b/package.json index 5d263a348..db5523c1c 100644 --- a/package.json +++ b/package.json @@ -31,10 +31,8 @@ "archiver": "^0.13.0", "bluebird": "~1.2.2", "decompress-zip": "0.0.8", - "fs-extra": "^0.10.0", "inherits": "~2.0.1", "lodash": "~2.4.1", - "ncp": "^0.6.0", "optimist": "^0.6.1", "rcedit": "0.2.0", "plist": "^1.0.0", @@ -47,6 +45,8 @@ "temp": "~0.7.0", "update-notifier": "^0.1.8", "winresourcer": "^0.9.0", - "platform-overrides": "~1.0.0" + "platform-overrides": "~1.0.0", + "graceful-ncp": "0.0.1", + "graceful-fs-extra": "~1.0.0" } } diff --git a/test/utils.js b/test/utils.js index fc7a733f5..be3a8ddfa 100644 --- a/test/utils.js +++ b/test/utils.js @@ -132,7 +132,7 @@ test('should zip the app and create the app.nw file + log it', function (t) { utils.generateZipFile(files, _evt).then(function(nwfile) { var unzipper = new DecompressZip(nwfile); unzipper.on('list', function (files) { - t.deepEqual(expected, files.sort()); + t.deepEqual(files.sort(), expected); }); unzipper.list(); });