To add some context: I'm actually trying this approach in my project. Each "module" is its own git repo + npm package. I use https://github.com/verdaccio/verdaccio as a private registry. It's an interesting experience, but kind of painful to get started from an existing project: for every mistake you detect in your project, you need to go change the specific module, build it, commit, publish a new version and import it in the main project. Which can also be a good thing because you end up testing much more on a per-module basis.