npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

nodegpm

v0.0.5

Published

Unified management for global Node.js packages

Downloads

6

Readme

🚧 Project is under development 🚧

What does NodeGPM do?

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.

Installation

npm install nodegpm

yarn add nodegpm

pnpm add nodegpm

bun add nodegpm

Usage

Here are the vailable functions:

Detecting Global Package Managers

To detect which global package managers are installed, you can use the detectGlobalPackageManagers function:

const globalPackageManagers = await detectGlobalPackageManagers();
console.log('Installed global package managers:', globalPackageManagers);

Detecting Most Used Global Package Manager

To detect the most used global package manager, you can use the mostUsedGlobalPackageManager function:

const mostUsedPM = await mostUsedGlobalPackageManager();
console.log('Most used global package manager:', mostUsedPM);

Detecting Globally Installed Package(s)

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);

Installing Packages Globally

You can use the installGlobally function to install packages globally using a specific package manager:

const pm = 'npm'; // Package manager (npm, yarn, pnpm, bun)
const packages = ['prettier', 'eslint'];
await installGlobally(pm, packages);

Removing Packages Globally

To remove globally installed packages, you can use the removeGlobally function:

const packagesToRemove = ['prettier', 'eslint'];
await removeGlobally(packagesToRemove);

Acknowledgement

NodeGPM is inspired by nypm by unjs team. 💚

Contributing

Thanks for your interest 💚 If you have any idea, feel free to open a discussion first and let's talk about it!

License

MIT License © 2023.