const { spawn } = require('child_process'); const { basename, join, resolve } = require('path'); // Path where the executables of local npm dependencies are. const appRoot = resolve(__dirname, '..'); // General colors const reset = "\x1b[0m"; // Fore ground colors. const fgRed = "\x1b[31m"; const fgYellow = "\x1b[33m"; const fgGreen = "\x1b[32m"; const fgMagenta = "\x1b[35m"; const fgCyan = "\x1b[36m"; const gulpSpawn = (cmd, args, done) => { const stream = spawn( resolve(__dirname, '../node_modules/.bin', cmd), args, { stdio: 'inherit', cwd: appRoot, shell: true } ); stream.on('exit', (code) => { const colored = `${fgCyan}${basename(cmd)} ${args.join(' ')}${reset}`; console.log(`\nChild process [ ${colored} ] exited with code ${code}\n`); if (code !== 0) { process.exit(code); } done(); }); }; module.exports.gulpSpawn = gulpSpawn;