Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@ttoss/monorepo

Package Overview
Dependencies
Maintainers
2
Versions
87
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ttoss/monorepo

Monorepo setup for ttoss

latest
Source
npmnpm
Version
1.29.17
Version published
Weekly downloads
385
0.26%
Maintainers
2
Weekly downloads
 
Created
Source

@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:

  • Update pnpm-workspace.yaml "packages" field to match your monorepo structure
  • Update lerna.json "packages" field to match your monorepo structure
  • Run pnpm syncpack:list to check for version mismatches across packages
  • Try making a commit to test the hooks
  • 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.

FAQs

Package last updated on 10 Jun 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts