1.1.2 • Published 1 year ago
installed-versions v1.1.2
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.jsonif 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-versionsUsage
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, anddevDependenciesare objects of package names to an object containinginstalledVersion(string) andspecifiedVersion(string).