0.4.0 โ€ข Published 5 months ago

monoup v0.4.0

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

Monoup

A lightweight and flexible library packing tool designed specifically for monorepos. Build, version, and manage your monorepo packages with ease.

โœจ Features

Build Features:

  • ๐Ÿ“ฆ Multi-Format Output: Support for CJS and ESM formats
  • ๐Ÿ”จ TypeScript Support: Full TypeScript support with declaration files
  • โšก Performance: Fast builds using esbuild and rollup
  • ๐Ÿ” Source Maps: Optional source map generation
  • ๐Ÿ“Š Progress Display: Real-time build progress

Version Management:

  • ๐Ÿ”„ Semver Support: Full semantic versioning compliance
  • ๐Ÿ“ฆ Monorepo Sync: Maintains version consistency across packages
  • ๐Ÿท๏ธ Pre-release: Support for alpha, beta, and other pre-release tags
  • โšก Auto-update: Automatically updates dependent package versions

Publishing:

  • ๐Ÿ”„ Version Sync: Only publishes packages matching root version
  • ๐Ÿ“ฆ Smart Package Order: Publishes in dependency order
  • ๐Ÿ” Version Check: Skips already published versions
  • ๐ŸŽจ Beautiful Output: Clean, formatted npm publish output

General Features:

  • ๐ŸŽฏ Package Targeting: Target specific packages with --package option
  • ๐Ÿงน Clean Management: Smart cleaning of build artifacts
  • ๐ŸŽจ Beautiful CLI: Intuitive interface with colored output
  • โš ๏ธ Error Handling: Detailed error reporting with proper exit codes

๐Ÿš€ Installation

npm install -D monoup
# or
yarn add -D monoup
# or
pnpm add -D monoup

๐Ÿ“– Usage

Build Command

# Build all packages
monoup build

# Build specific package
monoup build --package my-package

# Build with process display
monoup build --process

# Build for production
monoup build --production

Version Command

# Bump patch version (1.0.0 -> 1.0.1)
monoup version

# Bump specific version type
monoup version [major|minor|patch]

# Add/bump pre-release version
monoup version pre              # 1.0.0 -> 1.0.0-alpha.0
monoup version pre --tag beta   # 1.0.0 -> 1.0.0-beta.0

# Version specific package
monoup version --package my-package

Clean Command

# Clean all packages
monoup clean

# Clean specific package
monoup clean --package my-package

# Clean with verbose output
monoup clean --verbose

Publish Command

# Publish all packages that match root version
monoup publish

# Publish specific package
monoup publish --package my-package

# Publish with process display
monoup publish --process

โš™๏ธ Configuration

Create a monoup.config.mjs in your project root:

export default {
  // Project structure
  packagesDir: 'packages', // Monorepo packages directory
  srcDir: 'src', // Source directory
  outDir: 'lib', // Output directory

  // Build configuration
  build: {
    // Output formats and extensions
    formats: ['cjs', 'esm'],
    extensions: {
      cjs: '.js',
      esm: '.mjs',
    },

    // Build options
    target: 'ESNext', // Build target
    sourcemap: true, // Generate source maps

    // TypeScript configuration
    typescript: {
      enabled: true, // Enable TypeScript support
      declaration: true, // Generate declaration files
    },
  },

  // Display options
  verbose: false, // Verbose logging
  process: false, // Show build progress
};

๐Ÿ“„ License

MIT ยฉ illuxiza

0.4.0

5 months ago

0.3.7

6 months ago

0.3.6

6 months ago

0.3.5

6 months ago

0.3.4

6 months ago

0.3.3

6 months ago

0.3.2

6 months ago

0.3.1

6 months ago

0.3.0

6 months ago

0.2.2

6 months ago

0.2.1

6 months ago

0.2.0

6 months ago

0.1.0

8 months ago

0.0.3

8 months ago

0.0.2

8 months ago

0.0.1

8 months ago