vlt / docs

  • PricingBenchmarks (opens in new window)Community (opens in new window)Feedback
  • Overview
  • Package Registry
  • Named Registries
  • Dependencies
  • Manifest
  • Packuments
  • Direct vs. transitive
  • Dependency types
  1. Concepts
  2. /
  3. Dependencies

Dependencies

Dependencies are external packages of code your project uses to function.

In the Node.js ecosystem, developers use package.json at the root of the project to declare a list of direct dependencies in the dependencies (e.g., "express": "^4.18.0"). Each of those most likely have transitive dependencies (i.e., express pulls in body-parser, accepts, cookie respectively.). This list of packages, and their dependencies are what constitutes a dependency tree for a project.

Direct vs. transitive

TypeWhat it isExample
DirectListed in your package.jsonexpress@^4.18.0
TransitiveA dependency of one of your dependenciesbody-parser (express needs it)

For example, after running vlt install express typescript, this is what your filesystem might look like:

  • package.json list express@^4.18.0 directly
  • node_modules
    • express ← direct dependency (you installed it)
      • index.js
      • node_modules
        • body-parser ← transitive (express needs it)
        • accepts ← transitive
        • cookie ← transitive
        • …
    • typescript ← direct dependency (dev)

Dependency types

Packages in package.json can be declared under several categories:

Field in package.jsonPurpose
dependenciesProduction dependencies needed at runtime
devDependenciesDevelopment-only tools (testing, building)
peerDependenciesExpected host dependency (e.g., a component library that is built off react)
optionalDependenciesNon-failing — install skipped if resolution fails

Familiar with CSS selectors? Then you'll like DSS.

The vlt CLI provides handy colon-prefixed commands to query and filter by dependency types pseudo-state selectors like :prod, :dev, :peer, and :optional.


PreviousNamed RegistriesNextManifest

On this page

  • Direct vs. transitive
  • Dependency types
Edit this page

Deploy your package on vlt.io

Publish scoped and private packages, manage organizations and access, and give every developer and CI environment a consistent source for public and private JavaScript dependencies.

Publish now