Package Manager
The tool that resolves, fetches, and installs dependencies, and pins them for reproducibility.
A package manager resolves a project's declared dependency ranges into concrete versions, fetches them, arranges them on disk, and records the resolution in a Lockfile.
Three responsibilities are worth separating because they fail differently. Resolution — turning ranges into versions, which is where conflicts surface. Fetching — where registry availability and integrity checking matter. Linking — how packages are laid out, which decides what a program can actually import.
The linking strategy is the least visible and most consequential difference between managers. A flat layout hoists everything into one directory, which means a program can import a package it never declared, and that accidental dependency works until it does not. Isolated layouts link only declared dependencies, which prevents that at the cost of more disk work and some tooling incompatibility.
Version managers for the underlying runtime are a related and separate concern, and the ecosystem has churned through several. The practical lesson is that they are cheap to swap and worth keeping current, and that a dead one is a maintenance liability rather than a stable choice.
Ecosystems also have their own gotchas that no gate catches: a configuration key that is valid in one context and unsupported in another is typically ignored rather than rejected. See Silent Failure.
See also6
Lockfile
A generated file recording the exact dependency versions an install resolved to.
Version Control & Delivery9 connections
Monorepo
Several packages developed in one repository with shared tooling and atomic cross-package changes.
Systems & Tooling11 connections
Semantic Versioning
A version-numbering convention where the number communicates the kind of change.
Version Control & Delivery14 connections
Supply Chain Security
Protecting against compromise arriving through the code and tooling a project depends on.
Version Control & Delivery13 connections
Bundler
The tool that resolves an application's modules into the files a browser downloads.
Web Platform12 connections
Dotfiles
A tracked repository of personal configuration, making a machine setup reproducible.
Systems & Tooling10 connections
Related2
Nearby in the graph rather than deliberately chosen. Looser, sometimes surprising.
Linked from13
- BundlerWeb Platform
The tool that resolves an application's modules into the files a browser downloads.
- CopyleftVersion Control & Delivery
A licensing strategy that uses copyright to require derivative works to stay open.
- DeprecationMethod
Marking something as superseded and scheduled for removal, without removing it yet.
- DotfilesSystems & Tooling
A tracked repository of personal configuration, making a machine setup reproducible.
- Game ModdingPlay & Games
User modification of a released game, running as its own ecosystem of tools, hosting and legal ambiguity.
- LockfileVersion Control & Delivery
A generated file recording the exact dependency versions an install resolved to.
- MonorepoSystems & Tooling
Several packages developed in one repository with shared tooling and atomic cross-package changes.
- Permissive LicenseVersion Control & Delivery
A license family that imposes little beyond attribution and a warranty disclaimer.
- Rolling ReleaseSystems & Tooling
A distribution model that ships updates continuously instead of in versioned batches, trading stability for currency.
- Semantic VersioningVersion Control & Delivery
A version-numbering convention where the number communicates the kind of change.
- Supply Chain SecurityVersion Control & Delivery
Protecting against compromise arriving through the code and tooling a project depends on.
- Time ZoneSystems & Tooling
Civil time is a political layer over solar time, and its rules change often enough to be data.
- Yak ShavingMethod
A chain of prerequisite tasks that stands between you and the task you meant to do.