Hey idiot. I’m writing this because there is one source on the first page of Google that explains software dependencies, the rest have to do with Project Management. The concepts are similar, but not the same. With that, let’s get into dependencies in Web Development!

A project manager assists her underling
This is what Duotone gave me when I typed in “project manager”

Project dependencies, software dependencies, dependencies. This is the same stuff. It’s a very simple concept, but for some reason it took me a long time to fully grasp what dependencies were and the role they play in software development.

Dependencies in web development are separate programs or pieces of code that are required for the operation of the software you are trying to run. In order to properly dispose of your poopoo, your toilet is dependent upon a plumbing system. Seems obvious right? Exactly, because it is obvious.

Better example of a dependency

A better example of a dependency in software is when you need to use someone else has already built what you need. For instance, I include Jquery in many of my projects to add animation or functionality quickly. I have to include a Jquery CDN in my HTML head in order for the code to work. If I did not include this code in the head, my code would be unusable because of jQuery references. Keyword — depends.

Web dependencies in web development are designed to facilitate efficiency and organization. Simply put, we need to reuse code, don’t reinvent the wheel. Having open source software is important for this very reason. Initially, I had a hard time accepting this concept because I believed it was intellectually dishonest.

Package.json

In most of my projects I have a JSON file called “package.json” which explicitly lists my program dependencies. I will give a small example for a personal site I have finished recently.

"dependencies": {
  "@fortawesome/fontawesome-svg-core": "^1.2.4",
  "bootstrap": "v4.1.3",
  "jquery": "^3.3.1",
  "popper.js": "^1.14.4"
}

Here we have a JSON object called dependencies, the keys are the names and the values, the versions. For this particular project, I wanted to install Jquery v3.3.1. After installing Node Project Manager or NPM, when I call npm install it looks through my package.json and installs the packages required.

After running NPM Install, Bootstrap4, Jquery and fontawesome became available throughout my project. This happened automatically using NPM, which saves a bunch of time. Dependencies and package managers go hand in hand. Any modern developer is going to need to pick up atleast one of these package managers. PMs are not mandatory to create a project, but if you are ever going to pull down a project from Github you need to know how to deal with the PM these projects will inevitably have.

Thanks for reading, check out my post about Python Functions, idiot.