UNPKG

npm-update-all

Version:

Update all npm packages in dependencies & devDependecies under package.json at once

74 lines (47 loc) 1.54 kB
#! /usr/bin/env node 'use strict'; var _ = require('lodash'); var fs = require('fs'); var beautify = require('prettify-js'); var exec = require('child_process').exec; var clc = require('cli-color'); var pkg = process.cwd() + '/package.json'; var Spinner = require('cli-spinner').Spinner; if (fs.existsSync(pkg)) { console.log((clc.yellow.bgBlack('Package.json Located at : ') +" " +process.cwd() + '/package.json')); console.log('--------------------------'); console.log('UPDATING npm modules......'); console.log('--------------------------'); var spinner = new Spinner('%s'); spinner.setSpinnerString('|/-\\'); spinner.start(); pkg = require(pkg); doInstall(); } else { console.log(beautify({error: 'package.json not found', msg: 'navigate to project root & run command ',dir :process.cwd()})); } function doInstall() { var noPackage = 0; var devDep = 'npm i -D '; _.forEach(pkg.devDependencies, function (value, key) { key += '@* '; devDep += key; noPackage +=1; }); var dep = 'npm i -S '; _.forEach(pkg.dependencies, function (value, key) { key += '@* '; dep += key; noPackage +=1; }); var npmUpdate = devDep + ' && ' + dep; exec(npmUpdate, function (err, out, stderr) { spinner.stop(); if (err) { console.error('exec error:' + err); return; } console.log('Packages Updated : ' + noPackage); }).stdout.pipe( process.stdout); }