Package Managers

Author:Esadax
Updated:Mar 3, 2025

Esadax supports various package managers for dependency management, ensuring optimal build performance. This guide outlines the supported package managers, how they are detected, and how you can manually specify a package manager for your project or deployments.

Supported Package Managers

The following table lists the package managers supported by Esadax, along with their install commands and versions:

Package Manager Lock File Install Command Supported Versions
Yarn yarn.lock yarn install 1
npm package-lock.json npm install 8, 9, 10
pnpm pnpm-lock.yaml pnpm install 6, 7, 8, 9
Bun bun.lockb bun install 1

Esadax automatically detects the package manager based on the presence of a lock file in your project. If no lock file exists, it defaults to npm.

Manually Specifying a Package Manager

You can manually specify a package manager for your project or deployments. Here's how:

Project Override

To specify a package manager for all deployments in your project:

  1. Navigate to your project on the Esadax dashboard.
  2. Select the Settings tab.
  3. Enable the Override toggle in the Build & Development Settings section.
  4. Add your install command (e.g., pnpm install).
  5. Save changes, and the specified package manager will be used on your next deployment.

Deployment Override

To specify a package manager for a single deployment:

  1. Modify your esadax.json file in your project root.
  2. Add an installCommand property with the desired command (e.g., "pnpm install").
  3. Esadax will use the oldest available version of the specified package manager during the build.

Version Compatibility

The specific version of a package manager used depends on the lock file's lockfileVersion:

  • For npm and pnpm, this is specified in their respective lock files.
  • For example, pnpm-lock.yaml with lockfileVersion: 9.0 uses pnpm 9.

If no version is specified, Esadax defaults to using the latest compatible version based on Node.js versions.

Conclusion

Esadax simplifies dependency management by automatically detecting and using the appropriate package manager. For more details or assistance, feel free to ask!