Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/adhamfarrag/nodegpm
Unified management for global Node.js packages
https://github.com/adhamfarrag/nodegpm
global-packages npm
Last synced: 3 months ago
JSON representation
Unified management for global Node.js packages
- Host: GitHub
- URL: https://github.com/adhamfarrag/nodegpm
- Owner: adhamfarrag
- License: mit
- Created: 2023-09-25T23:14:10.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-04-04T06:20:29.000Z (9 months ago)
- Last Synced: 2024-10-17T18:58:19.855Z (3 months ago)
- Topics: global-packages, npm
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/nodegpm
- Size: 252 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
### 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
```sh
npm install nodegpmyarn 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 `detectPackageManagers` function:
```ts
const globalPackageManagers = await detectPackageManagers();
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 `mostUsedGPM` function:
```ts
const mostUsedPM = await mostUsedGPM();
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:
```ts
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:
```ts
const pm = 'npm'; // Package manager (npm, yarn, pnpm, bun), default is most-used
const packages = ['prettier', 'eslint'];
await installGlobally(packages, pm);
```
#### Removing Packages Globally
To remove globally installed packages, you can use the `removeGlobally` function:
```ts
const packagesToRemove = ['prettier', 'eslint'];
await removeGlobally(packagesToRemove);
```
### Acknowledgement
NodeGPM is inspired by [nypm](https://github.com/unjs/nypm) by [unjs](https://github.com/unjs) team. 💚
### Contributing
Thanks for your interest 💚
If you have any idea, feel free to [open a discussion](https://github.com/adhamfarrag/nodegpm/discussions/new?category=ideas) first and let's talk about it!
### License
[MIT](https://github.com/adhamfarrag/nodegpm/blob/main/LICENSE) License © 2023.