UNPKG

install-packages

Version:

Install dependencies using Yarn with npm fallback.

42 lines (36 loc) 926 B
const spawn = require('cross-spawn') const logger = require('./logger') function pipeSpawn(cmd, params, opts) { const cp = spawn( cmd, params, Object.assign( { env: Object.assign( { /* eslint-disable camelcase */ FORCE_COLOR: logger.color, npm_config_color: logger.color ? 'always' : '', npm_config_progress: true /* eslint-enable camelcase */ }, process.env ) }, opts ) ) cp.stdout.setEncoding('utf8').on('data', d => logger.writeRaw(d)) cp.stderr.setEncoding('utf8').on('data', d => logger.writeRaw(d)) return new Promise((resolve, reject) => { cp.on('error', reject) cp.on('close', code => { if (code !== 0) { return reject(new Error(cmd + ' failed.')) } logger.clear() return resolve() }) }) } module.exports = pipeSpawn