NodeGPM (Node Global Package Manager) is designed to simplify the management of global Node.js packages across different package managers like npm, yarn, pnpm, and bun. It provides a set of utility functions to perform tasks such as installing, removing, detecting globally installed packages, detecting available package managers, most used one, and more soon.
It uses command line tools for each package manager (npm, yarn, pnpm, and bun) to perform the tasks to make development easier, faster and more reliable.
Note: Bun doesn't offer needed commands to search for globally installed packages, so it's not supported yet.
npm install nodegpm
yarn add nodegpm
pnpm add nodegpm
bun add nodegpm
Here are the vailable functions:
To detect which global package managers are installed, you can use the detectPackageManagers
function:
const globalPackageManagers = await detectPackageManagers();
console.log('Installed global package managers:', globalPackageManagers);
To detect the most used global package manager, you can use the mostUsedGPM
function:
const mostUsedPM = await mostUsedGPM();
console.log('Most used global package manager:', mostUsedPM);
To detect if a package is installed globally, you can use the isGloballyInstalled
function:
const nuxi = await isInstalledGlobally('nuxi');
console.log('Is nuxi installed globally?', nuxi);
You can use the installGlobally
function to install packages globally using a specific package manager:
const pm = 'npm'; // Package manager (npm, yarn, pnpm, bun), default is most-used
const packages = ['prettier', 'eslint'];
await installGlobally(packages, pm);
To remove globally installed packages, you can use the removeGlobally
function:
const packagesToRemove = ['prettier', 'eslint'];
await removeGlobally(packagesToRemove);
NodeGPM is inspired by nypm by unjs team. 💚
Thanks for your interest 💚
If you have any idea, feel free to open a discussion first and let's talk about it!
MIT License © 2023.