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
Hand-picked in the note itself — the neighbours worth reading next.
Lockfile
A generated file recording the exact dependency versions an install resolved to.
Version Control & Delivery8 connections
Monorepo
Several packages developed in one repository with shared tooling and atomic cross-package changes.
Systems & Tooling8 connections
Semantic Versioning
A version-numbering convention where the number communicates the kind of change.
Version Control & Delivery9 connections
Supply Chain Security
Protecting against compromise arriving through the code and tooling a project depends on.
Version Control & Delivery9 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 & Tooling6 connections
Related2
Nearby in the graph rather than deliberately chosen. Looser, sometimes surprising.
Linked from7
Notes elsewhere in the wiki that reach for this one.
- BundlerWeb Platform
The tool that resolves an application's modules into the files a browser downloads.
- 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.
- 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.
- 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.