I hate how there's no official way to run your own private NPM registry. So you have to either pay NPM or resort to third party solutions like verdaccio. It's such an obvious money grab by the NPM devs.
Private npm repositories are an entirely different beast, and like GP mentions, there is no great option here.
That includes tarballs on http, git repos and even freaking local directories.
For companies where putting packages on smb mount is treated as non-enterprisey, npm have "npm enterprise" offering: https://www.npmjs.com/products/enterprise
EDIT - I see what you are saying - your own registry with browser and all.