Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

lerna cli with custom command extensions, forked with official lerna

License

Notifications You must be signed in to change notification settings

imcuttle/lerna-cli

Repository files navigation

lerna-cli

Build status Test coverage NPM version NPM Downloads Prettier Conventional Commits

lerna cli with custom command extensions, forked with official lerna

See lerna/lerna#2742

Features (VS Official lerna)

  • Use local lerna even in global command. see import-local
  • Custom command
  • Nested lerna.json in packages
    packages/
     foo/
     projects/
     bar/
     lerna.json
    lerna.json
    
  • Respect pnpm-workspace.yaml
    1. overwriting packages
    2. dependencies' version allows workspace:version
    packages/
    lerna.json
    pnpm-workspace.yaml
    
    In my best practices case: use pnpm as a monorepo manager, use lerna for publishing or some custom commands.

Installation

npm install lerna-cli -D
lerna --help

Custom commands

  1. lerna.json

Add extendCommands field, supports local file or npm package

+ "extendCommands": [
+ "./commands/custom",
+ "lerna-custom-command",
+ ],
  1. Write myself custom command

Add command.js

/**
 * @see https://github.com/yargs/yargs/blob/master/docs/advanced.md#providing-a-command-module
 */
exports.command = 'custom'
exports.describe = 'custom command.'
exports.builder = {
 exact: {
 describe: 'Specify lerna dependency version in package.json without a caret (^)',
 type: 'boolean'
 },
 independent: {
 describe: 'Version packages independently',
 alias: 'i',
 type: 'boolean'
 }
}
exports.handler = function handler(argv) {
 return require('..')(argv)
}
  1. Run custom command
lerna custom

Custom preset

  1. lerna.json

Add extendCommands field, supports local file or npm package

+ "extendCommands": [
+ "lerna-custom-preset-command",
+ ],
  1. Write myself custom command preset in command.js or command/index.js
module.exports = [
 require('lerna-command-a/command'),
 require('lerna-command-b/command'),
 require('lerna-command-c/command')
]
  1. Run custom command
lerna custom-a
lerna custom-b
lerna custom-c

Recommanded Commands

Contributing

  • Fork it!
  • Create your new branch:
    git checkout -b feature-new or git checkout -b fix-which-bug
  • Start your magic work now
  • Make sure npm test passes
  • Commit your changes:
    git commit -am 'feat: some description (close #123)' or git commit -am 'fix: some description (fix #123)'
  • Push to the branch: git push
  • Submit a pull request :)

Authors

This library is written and maintained by imcuttle, imcuttle@163.com.com.

License

MIT - imcuttle 🐟

About

lerna cli with custom command extensions, forked with official lerna

Resources

License

Stars

Watchers

Forks

Packages

No packages published

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /