installed-versions
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

installed-versions

A Node.js utility for detecting and reporting the installed versions of top-level dependencies in a project. It supports projects using npm, Yarn, or pnpm as their package manager, providing a unified interface to retrieve both the installed and specified versions of each dependency.

Features

  • Detects the project's package manager (npm, Yarn, or pnpm).
  • Reads the corresponding lock file (package-lock.json, yarn.lock, or pnpm-lock.yaml) or falls back to package.json if no lock file is found.
  • Reports both the specified and installed versions of top-level dependencies and devDependencies.
  • Supports projects using npm, Yarn, or pnpm as their package manager.
  • Detects if a lock file is present.
  • Falls back to parsing package.json if no lock file is detected.

Installation

To use Installed Versions in your project, add it as a development dependency:

npm install installed-versions

Usage

Import getInstalledVersions from the installed-versions package and call it with the path to your project. This function returns the installed and specified versions of each top-level dependency and devDependency in your project:

import getInstalledVersions from 'installed-versions';

async function showDependencies() {
  const projectPath = '.'; // Use the project's root directory
  try {
    const { dependencies, devDependencies, hasLockFile, pmName, pmVersion } =
      await getInstalledVersions(projectPath);

    console.log(`Lock file: ${hasLockFile ? 'Yes' : 'No'}`);
    console.log(`Package manager: ${pmName} ${pmVersion}`);

    console.log('Dependencies:');
    Object.entries(dependencies).forEach(
      ([name, { installedVersion, specifiedVersion }]) => {
        console.log(
          `${name}: Specified ${specifiedVersion}, Installed ${installedVersion}`
        );
      }
    );

    console.log('DevDependencies:');
    Object.entries(devDependencies).forEach(
      ([name, { installedVersion, specifiedVersion }]) => {
        console.log(
          `${name}: Specified ${specifiedVersion}, Installed ${installedVersion}`
        );
      }
    );
  } catch (error) {
    console.error('Failed to get installed versions:', error);
  }
}

showDependencies();

API

getInstalledVersions(projectPath: string): Promise<Deps>

  • projectPath: Path to the project directory.
  • Returns: A promise that resolves to an object containing five fields: hasLockFile, pmName, pmVersion, dependencies, and devDependencies. Both dependencies, and devDependencies are objects of package names to an object containing installedVersion (string) and specifiedVersion (string).

Readme

Keywords

none

Package Sidebar

Install

npm i installed-versions

Weekly Downloads

9

Version

1.1.0

License

MIT

Unpacked Size

18.8 kB

Total Files

20

Last publish

Collaborators

  • davej