Tools & Infrastructure

What Is a Package Manager?

Learn what package managers do, why every real project needs them, and how to use npm and pip to install and manage the code libraries your projects depend on.

Scroll to start

Your Project's Tool Belt

Imagine you're building a treehouse. You could carve every nail, saw every board, and mix your own paint from scratch — but that would take forever. Instead, you go to a hardware store and pick up nails, planks, and paint. Someone else already made those things, and you just use them.

A package manager is like a hardware store for your code. It's a tool that downloads and manages all the extra code libraries your project needs, so you don't have to find, download, and track them yourself.

When you start a real web project, you'll need code written by other people to handle common tasks — things like connecting to the internet, showing dates, or making animations. A package manager installs those pieces for you with a single command. It also keeps track of which versions you're using, so your project stays consistent and doesn't break when libraries get updated.

Two of the most popular package managers are npm (used for JavaScript and Node.js projects) and pip (used for Python projects). If you've used JavaScript or Python before, you've probably already benefited from one of these, even if you didn't realize it.

Why You Can't Build Alone

Every real piece of software is built on top of other people's work. Even a simple webpage might need code to handle animations, format dates, manage user input, and connect to a server. That's dozens of separate pieces of code — and writing all of them yourself would take months.

Package managers solve this problem. Instead of hunting down each library online, downloading it, and figuring out where to put the files, you just open your terminal and type one command. The package manager finds the library, downloads it, and installs it in the right place automatically.

More importantly, a package manager remembers what you installed. It keeps a list in a special file called a lock file or dependency file. This means if you share your project with someone else, or open it on a new computer months later, you can reinstall everything with one command — no guessing about which versions you need.

💡 Key Insight

A package manager is basically a librarian for your code. You ask for what you need ("give me the date library"), and the package manager finds it, checks it over, and puts it on your shelf — all in under a second.

The Package Manager Workflow

Here's what using a package manager looks like in practice. The process has four simple steps:

How npm and pip Work
⌨️
You Type a Command
"Install the library called lodash"
📦
PM Finds It
Searches its online library catalog
⬇️
Downloads
Grabs the code from the internet
Ready to Use
Library is installed in your project

The main commands you'll use are:

  • Install a library: npm install lodash (JavaScript) or pip install requests (Python)
  • Install everything in a project: npm install or pip install -r requirements.txt
  • Remove a library: npm uninstall lodash or pip uninstall requests

Behind the scenes, the package manager also updates a file that tracks your dependencies. In JavaScript, this is called package.json. In Python, it's requirements.txt. These files list every library your project needs — and anyone else can use them to install the exact same versions on their own computer.

Installing a Library with npm

Let's say you're building a JavaScript project and you need a popular tool called lodash, which makes working with lists and numbers much easier. Here's how you'd use npm to install it:

Your terminal
npm install lodash

That's it. npm finds lodash in its online catalog, downloads it, and puts it in a folder called node_modules inside your project. You can now use it in your code:

app.js
// Import the lodash library
const _ = require('lodash');

// Use lodash to find the largest number in a list
const numbers = [3, 7, 2, 99, 45];
const biggest = _.max(numbers);

console.log(biggest); // Output: 99

Without lodash, you'd have to write the code to find the largest number yourself. With lodash and npm, it's one import and one line of code.

Knowledge Check

Test what you learned with this quick quiz.

Quick Quiz — 3 Questions

Question 1
What does a package manager do when you run "npm install react"?
Question 2
What is the difference between npm and pip?
Question 3
Why does a package manager keep a list of your dependencies in a special file?
🏆

You crushed it!

Perfect score on this module.