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
- Use local
lernaeven in global command. see import-local - Custom command
- Nested
lerna.jsonin packagespackages/ foo/ projects/ bar/ lerna.json lerna.json - Respect pnpm-workspace.yaml
- overwriting
packages - dependencies' version allows
workspace:version
In my best practices case: use pnpm as a monorepo manager, use lerna for publishing or some custom commands.packages/ lerna.json pnpm-workspace.yaml - overwriting
npm install lerna-cli -D lerna --help
lerna.json
Add extendCommands field, supports local file or npm package
+ "extendCommands": [ + "./commands/custom", + "lerna-custom-command", + ],
- Write myself custom command
- See official command: @lerna/init, @lerna/add
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) }
- Run custom command
lerna custom
lerna.json
Add extendCommands field, supports local file or npm package
+ "extendCommands": [ + "lerna-custom-preset-command", + ],
- Write myself custom command preset in
command.jsorcommand/index.js
module.exports = [ require('lerna-command-a/command'), require('lerna-command-b/command'), require('lerna-command-c/command') ]
- Run custom command
lerna custom-a lerna custom-b lerna custom-c
- lerna-gpm - lerna command for git package manager
- lerna-command-toc - lerna command for generate toc of packages in markdown
- Fork it!
- Create your new branch:
git checkout -b feature-neworgit 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)'orgit commit -am 'fix: some description (fix #123)' - Push to the branch:
git push - Submit a pull request :)
This library is written and maintained by imcuttle, imcuttle@163.com.com.
MIT - imcuttle π