mirror of
https://github.com/quine-global/hyper.git
synced 2026-01-13 04:28:41 -09:00
45 lines
1 KiB
JavaScript
45 lines
1 KiB
JavaScript
const cp = require('child_process');
|
|
const queue = require('queue');
|
|
const ms = require('ms');
|
|
const {yarn, plugs} = require('../config/paths');
|
|
|
|
module.exports = {
|
|
install: fn => {
|
|
const spawnQueue = queue({concurrency: 1});
|
|
function yarnFn(args, cb) {
|
|
const env = {
|
|
NODE_ENV: 'production',
|
|
ELECTRON_RUN_AS_NODE: 'true'
|
|
};
|
|
spawnQueue.push(end => {
|
|
const cmd = [process.execPath, yarn].concat(args).join(' ');
|
|
console.log('Launching yarn:', cmd);
|
|
|
|
cp.execFile(process.execPath, [yarn].concat(args), {
|
|
cwd: plugs.base,
|
|
env,
|
|
timeout: ms('5m'),
|
|
maxBuffer: 1024 * 1024
|
|
}, err => {
|
|
if (err) {
|
|
cb(err);
|
|
} else {
|
|
cb(null);
|
|
}
|
|
|
|
end();
|
|
spawnQueue.start();
|
|
});
|
|
});
|
|
|
|
spawnQueue.start();
|
|
}
|
|
|
|
yarnFn(['install', '--no-emoji', '--no-lockfile', '--cache-folder', plugs.cache], err => {
|
|
if (err) {
|
|
return fn(err);
|
|
}
|
|
fn(null);
|
|
});
|
|
}
|
|
};
|