npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@ttoss/monorepo

v1.29.11

Published

Monorepo setup for ttoss

Readme

@ttoss/monorepo

@ttoss/monorepo is a tool to setup a monorepo with pnpm based on ttoss conventions.

Install

pnpm add -Dw @ttoss/monorepo

Commands

setup-monorepo

Setup monorepo configuration following ttoss configuration guidelines.

This command creates all necessary configuration files for ESLint, Prettier, Husky, commitlint, lint-staged, Lerna, Syncpack, and pnpm workspace in your monorepo root.

npx @ttoss/monorepo setup-monorepo [directory]

Arguments:

  • directory - Target directory (defaults to current directory .)

Examples:

# Setup monorepo configuration in current directory
npx @ttoss/monorepo setup-monorepo

# Setup monorepo configuration in a specific directory
npx @ttoss/monorepo setup-monorepo /path/to/monorepo

What it creates:

Configuration files:

  • .prettierrc.js - Prettier configuration
  • eslint.config.mjs - ESLint configuration
  • .commitlintrc.js - commitlint configuration
  • .lintstagedrc.js - lint-staged configuration
  • lerna.json - Lerna configuration for versioning and publishing
  • .syncpackrc.js - Syncpack configuration for dependency management
  • pnpm-workspace.yaml - pnpm workspace configuration
  • .gitignore - Git ignore file with common patterns
  • .npmrc - pnpm configuration file
  • .husky/commit-msg - Husky hook for commit message linting
  • .husky/pre-commit - Husky hook for pre-commit linting and syncpack validation

It also:

  • Installs eslint, prettier, @ttoss/eslint-config, and @ttoss/config as dev dependencies
  • Installs husky, @commitlint/cli, and lint-staged as dev dependencies
  • Installs @lerna-lite/cli, @lerna-lite/version, @lerna-lite/changed, and @lerna-lite/list as dev dependencies
  • Installs syncpack as dev dependency
  • Adds "prepare": "husky install" script to package.json
  • Adds "syncpack:fix": "syncpack fix-mismatches" script to package.json
  • Adds "syncpack:list": "syncpack list-mismatches" script to package.json
  • Initializes Husky and creates git hooks
  • Configures pre-commit hook to run both lint-staged and syncpack:list

Verifying the setup:

After running the command:

  1. Update pnpm-workspace.yaml "packages" field to match your monorepo structure
  2. Update lerna.json "packages" field to match your monorepo structure
  3. Run pnpm syncpack:list to check for version mismatches across packages
  4. Try making a commit to test the hooks
  5. Run pnpm lint to check your code formatting

About the tools:

  • Lerna: Lerna helps manage versioning and publishing of packages in a monorepo. The setup uses lerna-lite, a lighter alternative to Lerna.
  • Syncpack: Syncpack ensures consistent versions of dependencies across all packages in your monorepo.
  • pnpm workspace: Defines which directories contain packages in your pnpm monorepo.

setup-tests

Setup test structure following ttoss testing guidelines.

This command creates the recommended directory structure for unit and e2e tests, including all necessary configuration files.

npx @ttoss/monorepo setup-tests [directory] [options]

Arguments:

  • directory - Target directory (defaults to current directory .)

Options:

  • --e2e - Include e2e test setup (default: false)

Examples:

# Setup tests in current directory (unit tests only)
npx @ttoss/monorepo setup-tests

# Setup tests with e2e in current directory
npx @ttoss/monorepo setup-tests --e2e

# Setup tests in a specific package
npx @ttoss/monorepo setup-tests packages/my-package

# Setup tests with e2e in a specific package
npx @ttoss/monorepo setup-tests packages/my-package --e2e

What it creates:

Without --e2e:

  • tests/ - Root tests directory
  • tests/unit/tests/ - Unit tests directory
  • tests/unit/tests/setup.test.ts - Sample test to verify setup works
  • jest.config.ts - Root Jest configuration (with 50% coverage threshold)
  • tests/unit/jest.config.ts - Unit tests Jest configuration
  • tests/unit/babel.config.cjs - Unit tests Babel configuration
  • tests/tsconfig.json - Tests TypeScript configuration

With --e2e:

  • All of the above, plus:
  • tests/e2e/tests/ - E2E tests directory
  • tests/e2e/tests/setup.test.ts - Sample e2e test to verify setup works
  • tests/e2e/jest.config.ts - E2E tests Jest configuration
  • tests/e2e/babel.config.cjs - E2E tests Babel configuration

It also:

  • Installs jest and @ttoss/config as dev dependencies
  • Adds test scripts to package.json:
    • "test": "jest --projects tests/unit" - Run unit tests
    • "e2e": "jest --projects tests/e2e" - Run e2e tests

Verifying the setup:

After running the command, verify everything works:

pnpm test

You should see the sample tests pass. Once you start writing your own tests, you can delete the setup.test.ts files.