packmate
Version:
Your smart and friendly assistant for dependency updates and cleanup.
196 lines (151 loc) β’ 6.26 kB
Markdown
<h1 align="center">
<br>
<img src="https://github.com/ljlm0402/packmate/raw/images/logo.png" alt="Project Logo" width="800" />
<br>
<br>
PackMate
<br>
</h1>
<h4 align="center">β»οΈ Your smart and friendly CLI assistant for dependency updates and cleanup</h4>
<p align ="center">
<a href="https://nodei.co/npm/packmate" target="_blank">
<img src="https://nodei.co/npm/packmate.png" alt="npm Info" />
</a>
</p>
<p align="center">
<a href="http://npm.im/packmate" target="_blank">
<img src="https://img.shields.io/npm/v/packmate.svg" alt="npm Version" />
</a>
<a href="http://npm.im/packmate" target="_blank">
<img src="https://img.shields.io/github/v/release/ljlm0402/packmate" alt="npm Release Version" />
</a>
<a href="http://npm.im/packmate" target="_blank">
<img src="https://img.shields.io/npm/dm/packmate.svg" alt="npm Downloads" />
</a>
<a href="http://npm.im/packmate" target="_blank">
<img src="https://img.shields.io/npm/l/packmate.svg" alt="npm Package License" />
</a>
</p>
<p align="center">
<a href="https://github.com/ljlm0402/packmate/stargazers" target="_blank">
<img src="https://img.shields.io/github/stars/ljlm0402/packmate" alt="github Stars" />
</a>
<a href="https://github.com/ljlm0402/packmate/network/members" target="_blank">
<img src="https://img.shields.io/github/forks/ljlm0402/packmate" alt="github Forks" />
</a>
<a href="https://github.com/ljlm0402/packmate/stargazers" target="_blank">
<img src="https://img.shields.io/github/contributors/ljlm0402/packmate" alt="github Contributors" />
</a>
<a href="https://github.com/ljlm0402/packmate/issues" target="_blank">
<img src="https://img.shields.io/github/issues/ljlm0402/packmate" alt="github Issues" />
</a>
</p>
<br />
---
Packmate is a modern CLI tool for managing, updating, and cleaning up your Node.js project dependencies.
It supports **npm**, **pnpm**, and **yarn**. With an intuitive interactive UI, Packmate helps you keep your project healthy and up-to-dateβfaster and safer than ever.
## π€ Why Packmate?
- Cleaner and more focused than most legacy dependency updaters.
- Safer: latest packages cannot be selected by mistake.
- Faster: only recommended version upgrades are suggested by default.
- Supports monorepos and modern workspaces (pnpm, yarn, npm).
## π Features
- **Detects outdated dependencies** and suggests updates with recommended (major/minor) versions.
- **Finds and removes unused packages** from your project.
- **Detects declared but not installed packages** and helps install them easily.
- **Protects up-to-date packages:** disables selection for already latest packages.
- **Smart version suggestions**: Only shows the latest version for each major release.
- **Modern CLI interface:** powered by [@clack/prompts](https://github.com/natemoo-re/clack).
- **Works with npm, pnpm, and yarn** β auto-detects your package manager.
## πΎ Installation
```sh
npm install -g packmate
# or
pnpm add -g packmate
# or
yarn global add packmate
```
You can also run it instantly with:
```sh
npx packmate
```
## π Usage
From your project root, just run:
```sh
packmate
```
**Typical Workflow Example:**
```sh
β π¦ Packmate: Dependency Updates & Cleanup
β
β Select the packages you want to update/remove/install:
β β» globby 13.2.2 β 14.1.0 [Update Available]
β β» precinct [Not Installed]
β β» chalk 4.1.2 [Unused]
β β» npm-check-updates 16.14.20 β 18.0.1 [Update Available]
β βΌ @clack/prompts 0.11.0 [Latest]
β βΌ fs-extra 11.1.1 [Latest]
β
globby - choose a version to update (current: 13.2.2):
β 14.1.0 (major) [recommended]
β 13.4.2 (minor) [recommended]
β 13.2.3 (patch)
...
precinct is not installed. Install now?
> pnpm add precinct@latest
chalk is unused. Remove now?
> pnpm remove chalk
npm-check-updates - choose a version to update (current: 16.14.20):
β 18.0.1 (major) [recommended]
β 17.5.0 (minor)
...
> pnpm add globby@14.1.0
> pnpm remove chalk
> pnpm add precinct@latest
> pnpm add npm-check-updates@18.0.1
βοΈ Package update completed: globby@14.1.0
βοΈ Package removal completed: chalk
βοΈ Package install completed: precinct@latest
βοΈ Package update completed: npm-check-updates@18.0.1
Packmate done! π
```
## βοΈ Requirements
- Node.js v16 or later (recommended)
- Supports npm, yarn, and pnpm
- Works on Mac, Linux, and Windows
## π CLI Options
No extra options neededβjust run packmate in your project directory.
All selections (update, remove, install) are interactive.
## π§βπ» Contributing
PRs and issues are welcome!
- Fork the repo and submit pull requests.
- Use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) for commit messages.
- File bugs or suggestions via [GitHub Issues.](https://github.com/ljlm0402/packmate/issues)
## π Recommended Commit Message
```
β¨ Add user profile edit feature
- Implement profile image update UI/UX
- Add API integration for profile update
BREAKING CHANGE: Restructure profile page layout
```
| When | Commit Message |
| :--------------------- | :--------------------- |
| Add Feature | β¨ Add Feature |
| Fix Bug | π Fix Bug |
| Refactor Code | π Refactor Code |
| Install/Update Package | π¦ Install Package |
| Remove Package | ποΈ Remove Package |
| Fix/Update README | π Fix Readme |
| Update Documentation | π Update Docs |
| Update Version | πΌ Update Version |
| New Template | π New Template |
| Improve Performance | β‘ Improve Performance |
| Add/Update Test | β
Add/Update Test |
| Fix Lint/Format | π¨ Fix Lint/Format |
| Chore/Miscellaneous | π§ Chore |
| Initial Commit | π Initial Commit |
## π License
MIT Β© [AGUMON (ljlm0402)](mailto:ljlm0402@gmail.com)
## π Links
- [GitHub](https://github.com/ljlm0402/packmate)
- [npm](https://www.npmjs.com/package/packmate)