Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

standard-monorepo

Package Overview
Dependencies
Maintainers
1
Versions
46
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

standard-monorepo

[![oclif](https://img.shields.io/badge/cli-oclif-brightgreen.svg)](https://oclif.io) [![Version](https://img.shields.io/npm/v/standard-monorepo.svg)](https://npmjs.org/package/standard-monorepo) [![Downloads/week](https://img.shields.io/npm/dw/standard-mo

  • 0.7.1
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

standard-monorepo

oclif Version Downloads/week License

Goal

The goal is to create a library that will help you and your team manage js monorepos. We assume that you run github flow with rebase enabled and provide everything available in the CLI programatically.

standard-monorepo should be all you need to run a js monorepo effectively, no need to setup commitlint, fiddle with lerna and optimise CI environments.

Roadmap v1

  • Conventional commits Also supports a "--scope" flag and validates against a JIRA ticket number

    • Lint (Similar to commitlint, without the configuration)
      $ standard-monorepo commit "feat: did things"
      > [SUCCESS] Commit message meets the conventional commit standard
      
      $ standard-monorepo commit "did things"
      ›   Error: [FAIL]
      ›
      ›   ####################################
      ›   did things
      ›   ####################################
      ›
      ›
      ›   Make sure you follow the conventional commit format and provide the correct scope flag for your needs.
      
    • Prompt (Similar to commitizen, without the configuration)
  • Detect packages (yarn workspaces glob)

  • Circular Dependencies

    • Find circular dependencies
    • "--max" and "--max-total-paths" flags to prevent addicional circular dependencies or paths being introduced (if below they will output warnings instead of a failure)
    $ standard-monorepo circular-deps --max=1 --max-total-paths=55
    
    Found 2 circular dependencies in the project, please fix these as soon as possible.
    
        |> Maximum circular dependencies allowed is 1 "--max", found: 2
    
        |> Maximum circular dependencies *paths* allowed is 55 "--max-total-paths", found: 5
    
        #######################################################################
    
        |> foo ->
            bar ->
    
    
        |> a ->
            b ->
             c ->
    
  • Print what packages have changed since a git ref. See standard-monorepo list

  • CI helpers (github actions / gitlab ci / circle ci / etc) so that we only build/test what has changed

  • Run command (Similar to lerna exec "echo hello" --stream and lerna exec "echo hello" --parallel)

  • Watch command (Something that doesn't exist in the ecosystem at the moment)

  • Publish (Similar to lerna publish --conventional-commits)

Usage

$ npm install -g standard-monorepo
$ standard-monorepo COMMAND
running command...
$ standard-monorepo (-v|--version|version)
standard-monorepo/0.7.1 linux-x64 node-v12.22.7
$ standard-monorepo --help [COMMAND]
USAGE
  $ standard-monorepo COMMAND
...

Commands

standard-monorepo cache-key

USAGE
  $ standard-monorepo cache-key

OPTIONS
  -h, --help  show CLI help
  --cwd       use the context from where the command was run to determine root of the monorepo
  --github    print github actions output

EXAMPLES
  $ standard-monorepo cache-key # 93ead503b3bc9b08c2e07da10ef34162
  $ standard-monorepo cache-key --cwd # 93ead503b3bc9b08c2e07da10ef34162
  $ standard-monorepo cache-key --github # ::set-output name=cacheKey::{env.PREFIX}-93ead503b3bc9b08c2e07da10ef34162
  - name: Get nodemodules cache key
           id: cache-key
           shell: bash
           run: npx standard-monorepo cache-key
           env:
             PREFIX: ubuntu-latest-node-14.16.0
          
         - name: Cache node modules
           id: cache-node-modules
           uses: actions/cache@v2
           env:
             cache-name: cache-node-modules
           with:
             path: |
               node_modules
               **/node_modules
             key: steps.cache-key.outputs.cacheKey
             restore-keys: steps.cache-key.outputs.cacheKey

See code: src/commands/cache-key.ts

standard-monorepo circular-deps

USAGE
  $ standard-monorepo circular-deps

OPTIONS
  -h, --help                         show CLI help
  --max=max                          maximum allowed individual circular dependencies
  --max-total-paths=max-total-paths  maximum allowed circular dependencies paths

EXAMPLES
  $ standard-monorepo circular-deps
  $ standard-monorepo circular-deps --max=5 --max-total-paths=10 # default is 0 for both

See code: src/commands/circular-deps.ts

standard-monorepo commit [COMMIT]

USAGE
  $ standard-monorepo commit [COMMIT]

ARGUMENTS
  COMMIT  The commit message

OPTIONS
  -h, --help   show CLI help
  -s, --scope  should include scope in the commit message

EXAMPLES
  $ standard-monorepo commit # this will create a prompt like commitizen
  $ standard-monorepo commit --scope # this will create a prompt like commitizen
  $ standard-monorepo commit "feat: did things"
  $ standard-monorepo commit "feat!: did things"
  $ standard-monorepo commit "feat(ABC-123): did things" --scope
  $ standard-monorepo commit "feat!(ABC-123): did things" --scope
  "husky": {
     "hooks": {
       "commit-msg": "standard-monorepo commit $HUSKY_GIT_PARAMS"
     }
  }

See code: src/commands/commit.ts

standard-monorepo help [COMMAND]

USAGE
  $ standard-monorepo help [COMMAND]

ARGUMENTS
  COMMAND  command to show help for

OPTIONS
  --all  see all commands in CLI

See code: @oclif/plugin-help

standard-monorepo list

USAGE
  $ standard-monorepo list

OPTIONS
  -h, --help         show CLI help
  --filter=filter    glob to filter packages

  --[no-]fork-point  list all packages that have changed since a fork point, using "git merge-base --fork-point
                     $YOUR_REF"

  --nodes            list a representation of the dependency graph

  --only=only        [default: name,version,private,location] fields to return for each package

  --since=since      list all packages that have changed since a git ref

EXAMPLES
  $ standard-monorepo list
  $ standard-monorepo list >> list.json
  $ standard-monorepo list --only="name,version"
  [
     {
       "name": "a",
       "version": "1.0.0"
     },
     {
       "name": "b",
       "version": "1.0.0"
     },
     {
       "name": "c",
       "version": "1.0.0"
     }
  ]
  $ standard-monorepo list 
  --only="name,version,private,location,dependencies,devDependencies,peerDependencies,optionalDependencies"
  $ standard-monorepo list --only="name" --filter="foo"
  $ standard-monorepo list --nodes # Shows all packages and their dependencies in an indexed table
  $ standard-monorepo list --since=gitsha --only=name,version --no-fork-point
  $ standard-monorepo list --since=$(git merge-base --fork-point main)
  $ standard-monorepo list --since=main --fork-point # same as above
  $ standard-monorepo list --since=main # same as above as --fork-point default is true

See code: src/commands/list.ts

FAQs

Package last updated on 10 Nov 2021

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc