{"id":15365507,"url":"https://github.com/tunnckocore/scripts","last_synced_at":"2025-04-15T09:39:55.607Z","repository":{"id":55848077,"uuid":"155803014","full_name":"tunnckoCore/scripts","owner":"tunnckoCore","description":"Universal and minimalist scripts \u0026 tasks runner. Built with mono-repo in mind and for everyone from end users to @npm and @yarnpkg.","archived":false,"fork":false,"pushed_at":"2020-12-11T09:11:14.000Z","size":126,"stargazers_count":5,"open_issues_count":4,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-15T02:49:15.159Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tunnckoCore.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-11-02T02:24:12.000Z","updated_at":"2024-01-15T17:21:21.000Z","dependencies_parsed_at":"2022-08-15T07:50:41.410Z","dependency_job_id":null,"html_url":"https://github.com/tunnckoCore/scripts","commit_stats":null,"previous_names":["tunnckocorelabs/scripts"],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tunnckoCore%2Fscripts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tunnckoCore%2Fscripts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tunnckoCore%2Fscripts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tunnckoCore%2Fscripts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tunnckoCore","download_url":"https://codeload.github.com/tunnckoCore/scripts/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249045360,"owners_count":21203860,"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":[],"created_at":"2024-10-01T13:14:55.956Z","updated_at":"2025-04-15T09:39:55.582Z","avatar_url":"https://github.com/tunnckoCore.png","language":"JavaScript","funding_links":["https://paypal.me/tunnckoCore/10","https://www.patreon.com/bePatron?u=5579781"],"categories":[],"sub_categories":[],"readme":"# @tunnckocore/scripts [![npm version][npmv-img]][npmv-url] [![github release][ghrelease-img]][ghrelease-url] [![License][license-img]][license-url]\n\n\u003e Universal and minimalist scripts \u0026 tasks runner.\n\nPlease consider following this project's author, [Charlike Mike Reagent](https://github.com/tunnckoCore), and :star: the project to show your :heart: and support.\n\n\u003cdiv id=\"thetop\"\u003e\u003c/div\u003e\n\n[![Code style][codestyle-img]][codestyle-url]\n[![CircleCI linux build][linuxbuild-img]][linuxbuild-url]\n[![CodeCov coverage status][codecoverage-img]][codecoverage-url]\n[![DavidDM dependency status][dependencies-img]][dependencies-url]\n[![Renovate App Status][renovateapp-img]][renovateapp-url]\n[![Make A Pull Request][prs-welcome-img]][prs-welcome-url]\n[![Semantically Released][new-release-img]][new-release-url]\n\nIf you have any _how-to_ kind of questions, please read the [Contributing Guide](./CONTRIBUTING.md) and [Code of Conduct](./CODE_OF_CONDUCT.md) documents.  \nFor bugs reports and feature requests, [please create an issue][open-issue-url] or ping\n[@tunnckoCore](https://twitter.com/tunnckoCore) at Twitter.\n\n[![Become a Patron][patreon-img]][patreon-url]\n[![Conventional Commits][ccommits-img]][ccommits-url]\n[![NPM Downloads Weekly][downloads-weekly-img]][npmv-url]\n[![NPM Downloads Monthly][downloads-monthly-img]][npmv-url]\n[![NPM Downloads Total][downloads-total-img]][npmv-url]\n[![Share Love Tweet][shareb]][shareu]\n\nProject is [semantically](https://semver.org) \u0026 automatically released on [CircleCI](https://circleci.com) with [new-release][] and its [New Release](https://github.com/apps/new-release) GitHub App.\n\n\u003c!-- Logo when needed:\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/tunnckoCoreLabs/scripts\"\u003e\n    \u003cimg src=\"./media/logo.png\" width=\"85%\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n--\u003e\n\n## Features\n- Super composable scripts/tasks.\n- Powerful, fast and simple.\n- Built-in monorepo support.\n- Infinitly extensible shareable configs/presets of scripts/tasks.\n- Future-proof, intuitive API and resolving design.\n- \"Task runner\" or \"Command executor\"\n- Great for building `exec` commands on top of it\n- Main goal: standardized method for executing\n  + we can build `pnpm exec` and `npm exec` on top of it\n  + improve Yarn's main command-less call, e.g. `yarn` without params/arguments/flags\n\n## Table of Contents\n\n- [Install](#install)\n- [CLI](#cli)\n- [API](#api)\n  * [src/index.js](#srcindexjs)\n    + [scripts](#scripts)\n- [See Also](#see-also)\n- [Contributing](#contributing)\n  * [Follow the Guidelines](#follow-the-guidelines)\n  * [Support the project](#support-the-project)\n  * [OPEN Open Source](#open-open-source)\n  * [Wonderful Contributors](#wonderful-contributors)\n- [License](#license)\n\n_(TOC generated by [verb](https://github.com/verbose/verb) using [markdown-toc](https://github.com/jonschlinkert/markdown-toc))_\n\n## Install\n\nThis project requires [**Node.js**](https://nodejs.org) **^8.10.0 || \u003e=10.13.0**. Install it using\n[**yarn**](https://yarnpkg.com) or [**npm**](https://npmjs.com).  \n_We highly recommend to use Yarn when you think to contribute to this project._\n\n```bash\n$ yarn add @tunnckocore/scripts\n```\n\n## CLI\n To start using it is just enough to execute\n ```bash\nscripts  # or tunnckocore-scripts, or @tunnckocore/scripts\n```\n It will list you all the available tasks/scripts.\nThe cool thing is that it can load shareable configs, such as the `scripts.config.js` file in this repository. To do that, you need to pass some npm module as `extends` script.\n For example\n ```json\n{\n  \"scripts\": {\n    \"start\": \"scripts\",\n    \"extends\": \"@myorg/our-scripts\"\n  }\n}\n```\n Then everything will be available through running `yarn start` or `npm start`.\nThe tasks in those \"preset / config\" files are nothing more than a string, array of strings\n (executed in sequence), or function which may return string or array of mixed types. \n Feature number X. You can create hooks for any installed CLI program.\n Lets say we have `eslint` install, right? Then we can create such `pre` and `post` hooks\nin our config:\n ```js\nexport const preeslint = 'echo \"Before ESLint run\"'\nexport const posteslint = 'echo \"After ESLint run\"'\n```\n And just run `yarn start eslint index.js --fix`\n Another feature is that you all this works in monorepo environment too.\nNormally, if you didn't know to now, you can run any install CLI program with yarn.\nFor example `yarn eslint ...` or `yarn babel`. Yes, but this not works well in monorepo environments and that's why projects such as Yarn Workspaces, Pnpm's `pnpm recurisve` and Lerna exists. All of them\nhave their Pros and Cons, same here with `@tunnckocore/scripts`.\n The thing is, that we can do that with `yarn start`.\n With shareable configs/tasks/scripts everything goes great. You can share even between monorepos,\nor extend each other configs.\n\n## API\n\n\u003c!-- docks-start --\u003e\n_Generated using [docks](http://npm.im/docks)._\n\n### [src/index.js](/src/index.js)\n\n#### [scripts](/src/index.js#L18)\nCollecting tasks/scripts from various places such as `scripts.config.js`\nor even all the defined ones from `package.json`'s field `scripts`.\nYou can also pass `scripts.extends` and pass local javascript file\nor some npm module which in turn can be either CJS or ESM written.\n\n**Params**\n- `[argv]` **{Array}** array of string, defaults to `process.argv.slice(2)`\n- `[options]` **{object}** optioanl settings, like `cwd` and `manager`, also can pass `tasks` from here\n\n**Returns**\n- `Promise` if object is resolved, then it's all the collected tasks/scripts from configs,\n                   if array, then it's array of [execa][] results.\n\n\u003c!-- docks-end --\u003e\n\n**[back to top](#thetop)**\n\n## See Also\n\nSome of these projects are used here or were inspiration for this one, others are just related. So, thanks for your existance!\n\n- [asia](https://www.npmjs.com/package/asia): Blazingly fast, magical and minimalist testing framework, for Today and… [more](https://github.com/olstenlarck/asia#readme) | [homepage](https://github.com/olstenlarck/asia#readme \"Blazingly fast, magical and minimalist testing framework, for Today and Tomorrow\")\n- [charlike](https://www.npmjs.com/package/charlike): Small, fast and streaming project scaffolder with support for hundreds… [more](https://github.com/tunnckoCoreLabs/charlike) | [homepage](https://github.com/tunnckoCoreLabs/charlike \"Small, fast and streaming project scaffolder with support for hundreds of template engines and sane defaults\")\n- [docks](https://www.npmjs.com/package/docks): Extensible system for parsing and generating documentation. It just freaking… [more](https://github.com/tunnckoCore/docks) | [homepage](https://github.com/tunnckoCore/docks \"Extensible system for parsing and generating documentation. It just freaking works!\")\n- [gitcommit](https://www.npmjs.com/package/gitcommit): Lightweight and joyful `git commit` replacement. Conventional Commits compliant. | [homepage](https://github.com/tunnckoCore/gitcommit \"Lightweight and joyful `git commit` replacement. Conventional Commits compliant.\")\n- [new-release](https://www.npmjs.com/package/new-release): MIRROR] Publish project to NPM following Conventional Commits specification and… [more](https://github.com/tunnckoCoreLabs/new-release) | [homepage](https://github.com/tunnckoCoreLabs/new-release \"[MIRROR] Publish project to NPM following Conventional Commits specification and SemVer. Uses git-commits-since for detecting git commits since last SemVer tag and detect-next-version for what next version bump should be.\")\n\n**[back to top](#thetop)**\n\n## Contributing\n\n### Follow the Guidelines\n\nPlease read the [Contributing Guide](./CONTRIBUTING.md) and [Code of Conduct](./CODE_OF_CONDUCT.md) documents for advices.  \nFor bugs reports and feature requests, [please create an issue][open-issue-url] or ping\n[@tunnckoCore](https://twitter.com/tunnckoCore) at Twitter.\n\n### Support the project\n\n[Become a Partner or Sponsor?][patreon-url] :dollar: Check the **Partner**, **Sponsor** or **Omega-level** tiers! :tada: You can get your company logo, link \u0026 name on this file. It's also rendered on package page in [npmjs.com][npmv-url] and [yarnpkg.com](https://yarnpkg.com/en/package/@tunnckocore/scripts) sites too! :rocket:\n\nNot financial support? Okey! [Pull requests](https://github.com/tunnckoCoreLabs/contributing#opening-a-pull-request), stars and all kind of [contributions](https://opensource.guide/how-to-contribute/#what-it-means-to-contribute) are always\nwelcome. :sparkles:\n\n### OPEN Open Source\n\nThis project is following [OPEN Open Source](http://openopensource.org) model\n\n\u003e Individuals making significant and valuable contributions are given commit-access to the project to contribute as they see fit. This project is built on collective efforts and it's not strongly guarded by its founders.\n\nThere are a few basic ground-rules for its contributors\n\n1. Any **significant modifications** must be subject to a pull request to get feedback from other contributors.\n2. [Pull requests](https://github.com/tunnckoCoreLabs/contributing#opening-a-pull-request) to get feedback are _encouraged_ for any other trivial contributions, but are not required.\n3. Contributors should attempt to adhere to the prevailing code-style and development workflow.\n\n### Wonderful Contributors\n\nThanks to the hard work of these wonderful people this project is alive! It follows the\n[all-contributors](https://github.com/kentcdodds/all-contributors) specification.  \nDon't hesitate to add yourself to that list if you have made any contribution! ;) [See how,\nhere](https://github.com/jfmengels/all-contributors-cli#usage).\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore --\u003e\n| [\u003cimg src=\"https://avatars3.githubusercontent.com/u/5038030?v=4\" width=\"120px;\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eCharlike Mike Reagent\u003c/b\u003e\u003c/sub\u003e](https://tunnckocore.com)\u003cbr /\u003e[💻](https://github.com/tunnckoCoreLabs/scripts/commits?author=tunnckoCore \"Code\") [📖](https://github.com/tunnckoCoreLabs/scripts/commits?author=tunnckoCore \"Documentation\") [💬](#question-tunnckoCore \"Answering Questions\") [👀](#review-tunnckoCore \"Reviewed Pull Requests\") [🔍](#fundingFinding-tunnckoCore \"Funding Finding\") |\n| :---: |\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nConsider showing your [support](#support-the-project) to them. :sparkling_heart:\n\n## License\n\nCopyright (c) 2018-present, [Charlike Mike Reagent](https://tunnckocore.com) `\u003cmameto2011@gmail.com\u003e` \u0026 [contributors](#wonderful-contributors).  \nReleased under the [Apache-2.0 License][license-url].\n\n\u003c!-- Heading badges --\u003e\n\n[npmv-url]: https://www.npmjs.com/package/@tunnckocore/scripts\n[npmv-img]: https://badgen.net/npm/v/@tunnckocore/scripts?icon=npm\n\n[ghrelease-url]: https://github.com/tunnckoCoreLabs/scripts/releases/latest\n[ghrelease-img]: https://badgen.net/github/release/tunnckoCoreLabs/scripts?icon=github\n\n[license-url]: https://github.com/tunnckoCoreLabs/scripts/blob/master/LICENSE\n[license-img]: https://badgen.net/npm/license/@tunnckocore/scripts\n\n\u003c!-- Front line badges --\u003e\n\n[codestyle-url]: https://github.com/airbnb/javascript\n[codestyle-img]: https://badgen.net/badge/code%20style/airbnb/ff5a5f?icon=airbnb\n\n[linuxbuild-url]: https://circleci.com/gh/tunnckoCoreLabs/scripts/tree/master\n[linuxbuild-img]: https://badgen.net/circleci/github/tunnckoCoreLabs/scripts/master?label=build\u0026icon=circleci\n\n[codecoverage-url]: https://codecov.io/gh/tunnckoCoreLabs/scripts\n[codecoverage-img]: https://badgen.net/codecov/c/github/tunnckoCoreLabs/scripts?icon=codecov\n\n[dependencies-url]: https://david-dm.org/tunnckoCoreLabs/scripts\n[dependencies-img]: https://badgen.net/david/dep/tunnckoCoreLabs/scripts?label=deps\n\n[ccommits-url]: https://conventionalcommits.org/\n[ccommits-img]: https://badgen.net/badge/conventional%20commits/v1.0.0/dfb317\n[new-release-url]: https://ghub.io/new-release\n[new-release-img]: https://badgen.net/badge/semantically/released/05c5ff\n\n[downloads-weekly-img]: https://badgen.net/npm/dw/@tunnckocore/scripts\n[downloads-monthly-img]: https://badgen.net/npm/dm/@tunnckocore/scripts\n[downloads-total-img]: https://badgen.net/npm/dt/@tunnckocore/scripts\n\n[renovateapp-url]: https://renovatebot.com\n[renovateapp-img]: https://badgen.net/badge/renovate/enabled/green\n[prs-welcome-img]: https://badgen.net/badge/PRs/welcome/green\n[prs-welcome-url]: http://makeapullrequest.com\n[paypal-donate-url]: https://paypal.me/tunnckoCore/10\n[paypal-donate-img]: https://badgen.net/badge/$/support/purple\n[patreon-url]: https://www.patreon.com/bePatron?u=5579781\n[patreon-img]: https://badgen.net/badge/patreon/tunnckoCore/F96854?icon=patreon\n[patreon-sponsor-img]: https://badgen.net/badge/become/a%20sponsor/F96854?icon=patreon\n\n[shareu]: https://twitter.com/intent/tweet?text=https://github.com/tunnckoCoreLabs/scripts\u0026via=tunnckoCore\n[shareb]: https://badgen.net/badge/twitter/share/1da1f2?icon=twitter\n[open-issue-url]: https://github.com/tunnckoCoreLabs/scripts/issues/new\n\n[execa]: https://github.com/sindresorhus/execa\n[new-release]: https://github.com/tunnckoCore/new-release\n[semantic-release]: https://github.com/semantic-release/semantic-release","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftunnckocore%2Fscripts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftunnckocore%2Fscripts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftunnckocore%2Fscripts/lists"}