NPM Installer

Elide installs npm dependencies natively, powered by aube, a fast Rust-based Node.js package manager **embedded directly in the Elide binary**. There is no separate npm, pnpm, or yarn to install — and no Node.js process to fork. Resolution runs in-process.

npm is one of three ecosystems handled by Elide's unified installer; see Dependencies for the cross-ecosystem overview.

Quick start

Declare npm packages in elide.pkl:

pkl
amends "elide:project.pkl"

dependencies {
  npm {
    packages {
      "react@19.0.0"
      "@scope/widget@1.2.3"
    }
    devPackages {
      "typescript@5.6.2"
    }
  }
}

…or bring an existing package.json — Elide reads it as-is. Then:

bash
 elide install

How it works

  • npm registry compatibility — resolves packages from the npm registry, through pkg.st (npm.pkg.st) by default for security and caching. Use the global --no-pkgst flag to resolve against the upstream registry directly.
  • Lockfile — aube writes aube-lock.yaml for reproducible installs.
  • Content-addressed store — packages are stored once and linked, not copied per project.
  • Conventional layout — packages install under .dev/dependencies/npm/node_modules, and a root node_modules symlink points there so existing tooling resolves modules normally.

Using aube directly

The full aube CLI is available through Elide. Everything after -- is passed straight to aube:

bash
 elide aube -- install --ignore-scripts
 elide aube -- --help

Additional Resources