PitchHut logo
Effortlessly manage packages in your monorepo with zero dependencies.
Pitch

Pkij is a streamlined CLI tool for monorepo management, enabling seamless building, testing, and publishing of NPM packages. With no dependencies, this utility injects external packages while maintaining synchronization with the source, allowing for flexible development workflows without continuous manual overhead. Explore efficient package management today.

Description

pkij is a lightweight, single-file CLI utility specifically designed for efficient management of monorepos. With zero dependencies, pkij simplifies the complexities of building, testing, and publishing NPM packages within a monorepo structure while seamlessly handling inter-package dependencies, TypeScript configurations, and environment files.

Key Features

  • Monorepo Management: Manage multiple packages with ease by building, testing, and publishing directly from a monorepo setup.
  • Package Injection: Inject packages from outside the root directory, maintaining synchronization with the source location. This is particularly beneficial for library package development, allowing external code to be tested without the need for continuous NPM publishing.
  • Flexible CLI: Customize package management and build processes through a variety of CLI arguments. Manage linking strategies, build processes, and dependency lists, all without relying on external libraries.

Usage Examples

Injecting a Package

Inject a package from an external repository into the current monorepo:

{
  "inject": [
    {"dir": "../awesome-tools/packages/cool-lib"}
  ]
}

Execute the injection with:

npx pkij --inject

Ejecting a Package

Remove the injected package with:

npx pkij --eject

CLI Arguments Overview

Pkij supports a variety of command-line arguments to enhance functionality:

  • --inject [path ...]: Specify package source config files or directory paths to inject.
  • --eject [path ...]: Specify package source config files or directory paths to eject.
  • --build [path ...]: Build specified packages, defaulting to all if none are specified.
  • --test [path ...]: Run tests on specified packages.
  • --publish [path ...]: Publish specified packages, defaulting to all in the NPM namespace if none are specified.
  • --env [pathOrName ...]: Load specified environment configuration files.

This versatile tool is designed to enhance workflow efficiency in monorepo development, offering a seamless experience for package management.

0 comments

No comments yet.

Sign in to be the first to comment.