NPM

NPM is all you need to manage packages and your projects. The best part of it is that makes all the external code you need available to you. So easily. The project.json file is a beauty. You don’t have to edit the file youself to add new dependencies. Just use npm add. The files are downloaded to a folder. How the files are used is not up to NPM. Node just looks into the node_modules folder. Webpack does this bubdling thing. There is this require formats. Many of them. But that is upto the node or webpack process, I suppose. NPM downloads the full project directory. Each node module download has its own project.json where it specifies its own dependencies and the main file. The main file’s export is what is imported when loading an exteral thing to another file. But all the node modules in a flat folder structure. Some node modules have binary things. Some might just compile things while installing. I have to look this up. There are executable in a node modules. Executables need not be binary. Executables can be js scripts with the first line saying what binary to use. Here it is node. There is a bin folder for each external node module. The executables from these can be run by running npm run and the executable names. NPM global uses this. Global installs make these executables from bin folder available system wide. You can have commands in project json too. These can be run with npm run command name. This command is anything that can be run in the command line