1. npm warns me of security issues
2. A new feature exists that I need
3. I've profiled and am seeking performance improvements
I used to just push everything forward on a regular basis in fear that I'd fall too far behind but I stopped doing that at some point and discovered that it doesn't really manifest as a problem. Chasing bugs and features usually keeps relevant packages current. Also the discipline not to depend on too many top-level dependencies.