#!/bin/bash # Upgrade npm package (dev)dependencies to the latest versions and update package.json # # Require: # - jq - brew install jq command -v jq >/dev/null 2>&1 || { echo >&2 "jq not installed: see comments for instructions."; exit 1; } # Common stuff RED="$(tput setaf 1)" CYAN="$(tput setaf 6)" UNDERLINE="$(tput sgr 0 1)" NOCOLOR="$(tput sgr0)" function header() { echo -e "$UNDERLINE$CYAN$1$NOCOLOR\n"; } function error() { echo -e "$UNDERLINE$RED$1$NOCOLOR"; } if [ ! -f package.json ]; then error "package.json not found" exit 1 fi update() { header "Upgrading $1..." for package in $(cat package.json | jq -r ".$1 | keys | .[]" 2>/dev/null); do npm install --$2 $package done } update dependencies save update devDependencies save-dev