Thursday 13 April 2017

node_modules polluting my codebase

Hello I'm new to Node and in particular the dependency management system. When installing a module I find that my codebase is being covered by lots of dependencies when the actual code I've written is not that lengthy. I've also noticed that sometimes when I do an npm install instead of packaging all of the dependencies under one folder representing the module I'm downloading sometimes the modules dependencies endup sitting in parallel polluting the main folder. For example, I created a module that had maybe 3 sub modules that all are used by the main module and fit well together.

index.js
node_modules
     my_authentication_module
     my_authorization_module
     my_persistance_module

Then when I installed an AWS dependency the number of modules jumped considerable so my code base looks like

index.js
node_modules
     my_authentication_module
     my_authorization_module
     my_persistance_module
     aws_module_1
     aws_module_2
     .
     .
     .
     .
     .
     aws_module_20

Problem

This is cluttering my code and making it look like theres a lot more going on than there is. Is there a more efficient way of managing a node project?

Secondary Question

How come running "npm install some-module --save" does not confine all of the modules dependencies to a single folder? Or is there a way of doing this so that if some package needs 50 packages I don't end up with 50 packages sitting in parallel with the package that needs them.

For example. Instead of:

node_modules
     my_authentication_module
     my_authorization_module
     my_persistance_module
     aws_module_1
     aws_module_2
     .
     .
     .
     .
     .
     aws_module_20

It would be nice to get

node_modules
     my_authentication_module
     my_authorization_module
     my_persistance_module
     aws
        node_modules
           aws_module_1
           aws_module_2
           .
           .
           .
           .
           .
           aws_module_20

So at least navigating to the top level you can easily see theres only really 3 modules of interest with a bunch of AWS dependencies crammed neatly into one folder. Is anything like this possible?



via Usman Mutawakil

No comments:

Post a Comment