pnpm-category-catalog
v1.0.1
Published
A CLI tool for managing the pnpm workspace catalog, which helps you categorize the packages in the catalog and update the associated package.json reference.
Readme
English | 中文
pnpm-category-catalog is a CLI tool designed for monorepo projects using pnpm workspace. It solves the following pain
points:
- Batch Category Management: Process all dependencies in catalog at once, categorizing them by function or purpose
- Automatic Reference Updates: Automatically update dependency references in package.json files of sub-projects to
catalog:category-nameformat - Interactive Operations: Provide a friendly command-line interactive interface with confirm, cancel and undo support
- Batch Processing: Support loop processing until all packages are categorized
🛠️ Usage
Prerequisites
- Project must use
pnpm workspace. pnpm-workspace.yamlfile must exist in the project root directory.pnpm-workspace.yamlfile must containcatalogconfiguration.
📦 Best Practices
👀 Interested in pnpm catalogs? Recommend you read this post: Categorize Your Dependencies by Anthony.
Direct Execution
[!TIP] You can execute directly or install globally. The following examples use direct execution:
# 1. migrate to `pnpm catalog` (execute this command if not yet migrated).
pnpx codemod pnpm/catalog
# 2. execute custom category migration command.
npx pnpm-category-catalogGlobal Usage
If you want to use the command globally, you can do this:
Global Installation
npm install -g pnpm-category-catalog
# or
pnpm add -g pnpm-category-catalogRun
Run in the project root directory:
pcc🔧 Extensions
ESLint Ecosystem
If you want to use ESLint for some constraints, you can choose one of the following methods (optional):
- If you are using
@antfu/eslint-config
export default antfu({
pnpm: true,
// other options ...
})- If you are not using
@antfu/eslint-config, use it directly ineslint.config.js. For details, see: pnpm-workspace-utils
🤝 Contributing
Welcome to submit Issues and Pull Requests!
Development
# Install dependencies
pnpm install
# Run with example scenario (auto setup + run CLI)
pnpm dev:basicExample Scenarios
| Command | Description |
|------------------|------------------------------------------------------------|
| pnpm dev:basic | Basic scenario: all deps in catalog, not yet categorized |
Each run automatically resets to initial state, so you can test repeatedly without pollution.
Directory Structure
examples/
├── fixtures/ # Original templates (read-only)
│ └── basic/
└── workspace/ # Working directory (auto-generated, git ignored)
└── basic/📄 License
MIT License © lonewolfyx
