-
-
Save othiym23/4ac31155da23962afd0e to your computer and use it in GitHub Desktop.
#!/bin/sh | |
set -e | |
set -x | |
for package in $(npm -g outdated --parseable --depth=0 | cut -d: -f3) | |
do | |
npm -g install "$package" | |
done |
#!/bin/sh | |
set -e | |
set -x | |
for package in $(npm -g outdated --parseable --depth=0 | cut -d: -f2) | |
do | |
npm -g install "$package" | |
done |
npm outdated -g
was fixed a while back and works with npm version 6.4.1.
Running npm v6.8.0 and seeing this problem again. Global packages won't update beyond "wanted".
> npm outdated --global
Package Current Wanted Latest Location
color-convert 1.9.3 1.9.3 2.0.0
mocha 5.2.0 5.2.0 6.0.0
pdfkit 0.8.3 0.8.3 0.9.0
> npm update --global pdfkit
# does nothing
> npm update --global pdfkit@latest
# does nothing
> npm install --global pdfkit
+ pdfkit@0.9.0
added 8 packages from 41 contributors and updated 22 packages in 9.638s
If you prefer to choose which global modules are updated I've added interactive updating to npm-check with support for
global
.It also includes links to the source for each updated package so you can find out what's new.
Behind the scenes
npm-check
usesnpm install
thanks to the recommendation from @othiym23 in this thread.# install npm -g i npm-check # interactive update of global packages npm-check -u -g # interactive update for a project you are working on npm-check -uSource: github.com/dylang/npm-check
Great, bro! Thanks! :D
The Wanted
version shall be another major version, which is not very favorable, since it can break things.
Here is a way to upgrade only minor versions of global packages:
npm_global_packages=($(npm list -g --depth 0 | awk '/ /{print $2}'))
for val in "${npm_global_packages[@]}"; do
npm i -g --force $(echo $val | tr "." "\n" | head -1)
done
Good part is, that it will not bump npm
to a version that is incompatible with the current node
version, so this will most likely not break.
npm outdated -g
seems to have stopped working too. Does not print anything at all here though there definitely are outdated packages.