UNPKG

parcel-bundler

Version:

<p align="center"> <a href="https://parceljs.org/" target="_blank"> <img alt="Parcel" src="https://user-images.githubusercontent.com/19409/31321658-f6aed0f2-ac3d-11e7-8100-1587e676e0ec.png" width="749"> </a> </p>

31 lines (25 loc) 839 B
const spawn = require('cross-spawn'); const config = require('./config'); const path = require('path'); module.exports = async function(dir, name) { let location = await config.resolve(dir, ['yarn.lock', 'package.json']); return new Promise((resolve, reject) => { let install; let options = { cwd: location ? path.dirname(location) : dir }; if (location && path.basename(location) === 'yarn.lock') { install = spawn('yarn', ['add', name, '--dev'], options); } else { install = spawn('npm', ['install', name, '--save-dev'], options); } install.stdout.pipe(process.stdout); install.stderr.pipe(process.stderr); install.on('close', code => { if (code !== 0) { return reject(new Error(`Failed to install ${name}.`)); } return resolve(); }); }); };