electron-forge
Version:
A complete tool for building modern Electron applications
68 lines (54 loc) • 2.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _promise = require('babel-runtime/core-js/promise');
var _promise2 = _interopRequireDefault(_promise);
var _stringify = require('babel-runtime/core-js/json/stringify');
var _stringify2 = _interopRequireDefault(_stringify);
var _debug = require('debug');
var _debug2 = _interopRequireDefault(_debug);
var _yarnOrNpm = require('yarn-or-npm');
var _config = require('./config');
var _config2 = _interopRequireDefault(_config);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var d = (0, _debug2.default)('electron-forge:dependency-installer');
exports.default = function (dir, deps) {
var areDev = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
var exact = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
d('installing', (0, _stringify2.default)(deps), 'in:', dir, 'dev=' + areDev + ',exact=' + exact + ',withYarn=' + (0, _yarnOrNpm.hasYarn)());
if (deps.length === 0) {
d('nothing to install, stopping immediately');
return _promise2.default.resolve();
}
var cmd = ['install'].concat(deps);
if ((0, _yarnOrNpm.hasYarn)()) {
cmd = ['add'].concat(deps);
if (areDev) cmd.push('--dev');
if (exact) cmd.push('--exact');
} else {
if (exact) cmd.push('--save-exact');
if (areDev) cmd.push('--save-dev');
if (!areDev) cmd.push('--save');
}
return new _promise2.default(function (resolve, reject) {
d('executing', (0, _stringify2.default)(cmd), 'in:', dir);
var child = (0, _yarnOrNpm.spawn)(cmd, {
cwd: dir,
stdio: _config2.default.get('verbose') ? 'inherit' : 'pipe'
});
var output = '';
if (!_config2.default.get('verbose')) {
child.stdout.on('data', function (data) {
output += data;
});
child.stderr.on('data', function (data) {
output += data;
});
}
child.on('exit', function (code) {
if (code !== 0) return reject(new Error('Failed to install modules: ' + (0, _stringify2.default)(deps) + '\n\nWith output: ' + output));
resolve();
});
});
};