Skip to content

Monorepo Development

lazyenv uses a monorepo structure with pnpm workspaces and Turborepo.

  • packages/cli - Published as lazyenv
    • CLI tool and library exports
    • Main entry point for users
  • packages/core - Core library functionality
  • packages/infisical - Infisical API provider
  • packages/doppler - Doppler integration
  • apps/docs - Documentation site (Astro + Starlight)
Terminal window
# Install dependencies for all packages
pnpm install
# Build all packages
pnpm run build
# Build specific package
pnpm --filter lazyenv build
# Run tests for all packages
pnpm run test
# Run tests for specific package
pnpm --filter lazyenv test
  1. Make changes in relevant packages
  2. Build packages: pnpm run build
  3. Run tests: pnpm test
  4. Create changeset: pnpm changeset
  5. Commit and create PR
lazyenv (CLI)
├── packages/core
├── packages/infisical
├── packages/doppler
├── packages/bitwarden
├── packages/onepassword
└── packages/provisioners

lazyenv uses Turborepo for build orchestration:

  • Caches build outputs
  • Parallelizes tasks
  • Optimizes monorepo workflows
  1. Create package in packages/
  2. Add to pnpm-workspace.yaml
  3. Update dependencies in dependent packages
  4. Add build scripts to turbo.json