{"id":18585148,"url":"https://github.com/anjmao/yuppy","last_synced_at":"2026-05-03T05:39:17.055Z","repository":{"id":57404810,"uuid":"117999814","full_name":"anjmao/yuppy","owner":"anjmao","description":":ok_hand: Monorepo packages development-production cli","archived":false,"fork":false,"pushed_at":"2019-03-04T09:06:09.000Z","size":800,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-17T16:52:27.063Z","etag":null,"topics":["cli","nodejs"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anjmao.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-01-18T15:20:57.000Z","updated_at":"2021-05-07T22:50:39.000Z","dependencies_parsed_at":"2022-09-26T17:01:40.474Z","dependency_job_id":null,"html_url":"https://github.com/anjmao/yuppy","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anjmao%2Fyuppy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anjmao%2Fyuppy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anjmao%2Fyuppy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anjmao%2Fyuppy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anjmao","download_url":"https://codeload.github.com/anjmao/yuppy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254478193,"owners_count":22077676,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","nodejs"],"created_at":"2024-11-07T00:31:21.846Z","updated_at":"2026-05-03T05:39:12.031Z","avatar_url":"https://github.com/anjmao.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![npm version](https://badge.fury.io/js/yuppy.svg)](https://badge.fury.io/js/yuppy)\n[![Build Status][travis-badge]][travis-badge-url]\n\n[travis-badge]: https://travis-ci.org/anjmao/yuppy.svg?branch=master\n[travis-badge-url]: https://travis-ci.org/anjmao/yuppy\n[ng-select-url]: https://unpkg.com/yuppy@latest\n\n# Yuppy\nMonorepo packages development-production cli\n\n## What is Yuppy\nYuppy allows you do describe multiple packages in config file and run command for each of them.\n\n![yuppy](https://github.com/anjmao/yuppy/blob/master/yuppy.gif)\n\n\n### Features\n- [x] Show packages and run selected command in interactive command line\n- [x] Run single or multiple packages commands\n- [x] Detect and skip command if package path is not changed during CI (uses git diff)\n\n## Getting started\n\n* Install yuppy\n\nusing npm\n```\nnpm install yuppy --save-dev\n```\nusing Yarn\n```\nyarn add yuppy --dev\n```\n\n* Create `yuppy.config.js` (or yuppy.config.json) file under your root\n\n```js\nconst node = 'node';\nconst webpack = `${node} ./node_modules/webpack-cli/bin/webpack.js`\nmodule.exports = {\n    'packages': [\n        {\n            'name': 'Angular app',\n            'scripts': {\n                'start': `${webpack} --watch --config ./config/angular.webpack.js`,\n                'build': `${webpack} --config ./config/angular.webpack.js`,\n                'echo': 'echo Hello Angular',\n                'err': 'Angular error please'\n            }\n        },\n        {\n            'name': 'Vue app',\n            'scripts': {\n                'start': `${webpack} --watch --config ./config/vue.webpack.js`,\n                'build': `${webpack} --config ./config/vue.webpack.js`,\n                'echo': 'echo Hello Vue',\n                'err': 'Vue error please'\n            }\n        },\n        {\n            'name': 'React app',\n            'scripts': {\n                'start': `${webpack} --watch --config ./config/react.webpack.js`,\n                'build': `${webpack} --config ./config/react.webpack.js`,\n                'echo': 'echo Hello React',\n                'err': 'React error please'\n            }\n        }\n    ]\n}\n```\n\n* Update pacakge.json scripts and add start command\n\n```json\n\"scripts\": {\n    \"start\": \"./node_modules/yuppy/bin/yuppy start\"\n},\n```\n\n## Api\n\n* Run `yuppy -h` to see available commands\n\n```\nUsage: yuppy [options] [command]\n\n  Options:\n\n    -V, --version  output the version number\n    -h, --help     output usage information\n\n  Commands:\n\n    start [options]         Select and run package script\n    run [options] \u003cscript\u003e  Run given script(s) for all project\n```\n\n* Run `yuppy start -h` to see start command options\n\n```\nUsage: start [options]\n\n  Select and run package script\n\n  Options:\n\n    -c, --config [config]  Optional yuppy config file path\n    -h, --help             output usage information\n```\n\n* Run `yuppy run -h` to see run command options\n\n```\nUsage: run [options] \u003cscript\u003e\n\n  Run given script(s) for all project\n\n\n  Options:\n\n    -c, --config [config]                            Optional yuppy config file path\n    -s, --stop-on-fail                               Stop on first failed script\n    -S, --skip-unchanged                             Skip script when project is not changed\n    -p, --parallel                                   Run in parallel\n    -P, --max-parallel-scripts [maxParallelScripts]  Set max parallel scripts to run at the same time\n    -h, --help  \n```\n\n## Built With\n\n* [Commander.js](https://github.com/tj/commander.js/) - node.js command-line interfaces made easy\n* [Inquirer.js](https://github.com/SBoudrias/Inquirer.js/) - A collection of common interactive command line user interfaces.\n\n## Contributing\n\nPlease read [CONTRIBUTING.md](https://github.com/anjmao/yuppy/blob/master/CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanjmao%2Fyuppy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanjmao%2Fyuppy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanjmao%2Fyuppy/lists"}