installed-versions
v1.1.2
Published
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 **spe
Downloads
23
Readme
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
, orpnpm-lock.yaml
) or falls back topackage.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
, anddevDependencies
. Bothdependencies
, anddevDependencies
are objects of package names to an object containinginstalledVersion
(string
) andspecifiedVersion
(string
).