Re-using node modules in different projects

Is there a good usage pattern for re-using node modules across several projects? I have several modules that I duplicate in a few different projects. I feel like this must be a solved problem; do people host private npm repositories? Setup symbolic links?

Possible solutions :

If you mind disk space

As in : no package should be installed twice

  • Install globally
    • Require root
    • Generally, global install is advised for binary packages, not for modules you're gonna require.
  • Use npm link (man page)
    • doesn't require global install
    • Allow you to have just one version installed
    • Alllow you to modify locally this package

If you don't mind disk space

As in : having same packages installed multiple times

  • Use git source
    • like git@github.com or any other git repo
    • You'll not have the ability to require a specific package version via package.json
    • you can use branches / tags to have multiple versions available
  • Use a private npm repo as in registry doc
    • not as complicated as it might seem
    • can be used as a cache if you want to speed up most packages download