The basic rule of thumb is npm is 'virtualenv by default' while pip is 'global by default'.
This kind of thing is why people are saying npm is easier...
Yes, npm installs libraries locally so it avoids the need for something like virtualenv in the first place. Coming from Python, that immediately struck me as a better approach to package management.
If you use pipenv it takes care of the virtualenv stuff behind the scenes for you.