pnpm-catalog-helper
v0.0.0-alpha.1
Published
pnpm catalog helper
Maintainers
Readme
pnpm-catalog-helper is designed to streamline the process of adding packages to pnpm workspace catalogs. It automatically detects and configures the necessary pnpm workspace settings, ensuring a smooth catalog-based dependency management experience.
Key Features
- 🚀 Simplified Catalog Management: Easy addition of packages to specific catalog groups
- ⚙️ Automatic Configuration: Detects and adds required pnpm workspace settings
🚀 Usage
Installation
# Install globally
pnpm add -g pnpm-catalog-helper
# Or install locally
pnpm add -D pnpm-catalog-helperBasic Usage
# Add a single package to the 'tools' catalog
pp tools jiti
# Add multiple packages to the 'production' catalog
pp production react react-dom
# Add packages with additional pnpm options
pp dev typescript --save-devCommand Structure
pp <catalog-name> <package1> [package2...] [pnpm-options]<catalog-name>: The catalog group name (e.g., tools, production, dev)<package1> [package2...]: One or more package names to install[pnpm-options]: Additional pnpm options (e.g., --save-dev, --save-exact)
Automatic Configuration
The tool automatically ensures your pnpm-workspace.yaml has the required configuration:
catalogMode: prefer
cleanupUnusedCatalogs: trueIf these settings are missing, they will be added automatically. Read more
🛠️ Development
Setup
# Clone the repository
git clone https://github.com/ScaffoldCore/pnpm-catalog-helper.git
cd pnpm-catalog-helper
# Install dependencies
pnpm install
# Build the project
pnpm buildDevelopment Testing
# Watch mode for development
pnpm dev
# Test the CLI locally
node bin/index.js tools jiti
# Run linting
pnpm lint
# Fix linting issues
pnpm lint:fixProject Structure
src/
├── cli.ts # Main CLI implementation
├── utils.ts # Utility functions for YAML processing
dist/ # Compiled output
bin/ # Binary entry point🤝 Contributing
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes and ensure they follow the project's coding standards
- Run tests and linting:
pnpm lint - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
Development Guidelines
- Follow the existing code style and conventions
- Ensure TypeScript types are properly defined
- Add appropriate error handling and user-friendly messages
- Test your changes thoroughly
- Update documentation as needed
Issues
If you encounter any issues or have feature requests, please:
- Check existing Issues
- Create a new issue with detailed description
- Include reproduction steps and expected behavior
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🔗 Related Links
🙏 Acknowledgments
Thanks to the pnpm team for providing excellent catalog and workspace functionality that this tool builds upon.
