npm extraneous package

I am posting this here because it happens infrequently enough that I have to search for a solution each time.

The problem:

$ npm shrinkwrap

<...snip...>

npm ERR! Problems were encountered
npm ERR! Please correct and try again.
npm ERR! extraneous: bower@1.7.7 <path to second copy of bower>

The solution:

$ npm prune

Basically, npm is great for doing all the work of finding and installing javascript libraries, but as a package manager (ie: minimal graph calculator) it is not quite there yet.