{"id":13431863,"url":"https://github.com/trainyard/choo-cli","last_synced_at":"2025-06-22T14:20:36.248Z","repository":{"id":57101678,"uuid":"64144369","full_name":"trainyard/choo-cli","owner":"trainyard","description":"Command line scaffolding tools for choo","archived":false,"fork":false,"pushed_at":"2017-11-07T08:57:22.000Z","size":2226,"stargazers_count":65,"open_issues_count":0,"forks_count":17,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-04-24T10:19:30.488Z","etag":null,"topics":["choo-cli","cli","scaffold"],"latest_commit_sha":null,"homepage":"https://www.youtube.com/watch?v=FgYd3T8lb_Q","language":"JavaScript","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/trainyard.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":"2016-07-25T15:05:09.000Z","updated_at":"2022-01-11T07:54:11.000Z","dependencies_parsed_at":"2022-08-20T22:40:44.359Z","dependency_job_id":null,"html_url":"https://github.com/trainyard/choo-cli","commit_stats":null,"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/trainyard/choo-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trainyard%2Fchoo-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trainyard%2Fchoo-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trainyard%2Fchoo-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trainyard%2Fchoo-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trainyard","download_url":"https://codeload.github.com/trainyard/choo-cli/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trainyard%2Fchoo-cli/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260439741,"owners_count":23009315,"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":["choo-cli","cli","scaffold"],"created_at":"2024-07-31T02:01:06.559Z","updated_at":"2025-06-22T14:20:31.217Z","avatar_url":"https://github.com/trainyard.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# choo-cli [![npm](https://img.shields.io/npm/v/choo-cli.svg)](https://www.npmjs.com/package/choo-cli) [![Build Status](https://travis-ci.org/trainyard/choo-cli.svg?branch=master)](https://travis-ci.org/trainyard/choo-cli) ![MIT Licensed](https://img.shields.io/npm/l/choo-cli.svg)\n\nThis is a tool for generating [choo](https://github.com/yoshuawuyts/choo) apps.\n\n![demo](./choo-cli-demo.gif)\n\nTo Install (you'll need at least node v6):\n\n```\nnpm install choo-cli -g\n```\n\nUsing choo-cli will scaffold out a project and help generate additional files like models, pages, and elements.\nIt also generates common scripts you can use to build/test/serve your choo app.\n\n```bash\n# generate a new project folder,\n# comes with package.json, readme, and recommended structure\nchoo new my-new-project \n\n# using yarn?\nchoo new my-new-project --yarn\n\n# generate a new page\nchoo generate page my-new-page\n\n# generate a new model\nchoo generate model my-new-model\n\n# generate a new element\nchoo generate element my-new-element\n\n# run your app at localhost:8080\nnpm start\n\n# build your app for production\nnpm run build:prod\n\n# test your app\nnpm test\n\n```\n\n## Usage\n\nChoo-cli runs off of node and npm, you can install choo-cli globably with the\nfollowing command:\n\n\nThe basic signature of a choo-cli command look like this:\n```bash\n$ choo \u003ccommand\u003e \u003cname\u003e [options]\n```\n\nFor example to create a new project skeleton we can run:\n\n```bash\n$ choo new my-project\n```\n\nYou can now cd into my-project\n\n```bash\n$ cd my-project\n```\n\nChoo-cli will create a directory structure that for slim\napplications and reusability.\n\n```txt\nassets/        images and fonts, if you have any\nelements/      standalone application-specific elements\nlib/           generalized components, should be moved out of project later\nmodels/        choo models\npages/         views that are directly mounted on the router\nscripts/       shell scripts, to be interfaced with through `npm scripts`\nclient.js      main application entry; programmatic manifest file\npackage.json   manifest file\n```\n\n## Custom templates\n\nYou can also install custom templates from Github, like this\n\n```bash\n$ choo new \u003cproject\u003e from \u003cgithub-user\u003e/\u003cgithub-repo\u003e\n```\n\nCustom templates must have `ejs` templating syntax.\n\n## Using yarn\n\nYou can have the choo-cli use yarn over npm, like this\n```bash\n$ choo new \u003cproject\u003e from \u003cgithub-user\u003e/\u003cgithub-repo\u003e --yarn\n# or\n$ choo new \u003cproject\u003e --yarn\n# or\n$ choo new \u003cproject\u003e --yarn from \u003cgithub-user\u003e/\u003cgithub-repo\u003e\n```\n## Debug mode\nChoo-cli uses [debug](https://github.com/visionmedia/debug) - a popular logging framework.\n\nEnable debug mode by adding an environment `DEBUG` to have `choo-cli*` as its value\n```\nDEBUG=choo-cli* choo new ...\n```\n\n## Generators\n\nYou can use choo-cli to generate pieces of your project as you are developing.\nFor example you can generate\n\nPages\n```bash\n$ choo generate page my-page\n```\n\nModels\n```bash\n$ choo generate model my-model\n```\n\nElements\n```bash\n$ choo generate element my-element\n```\n\n## npm scripts\n\nChoo-cli was made for generating choo projects and code, and leverages npm scripts\nfor certain project task. So in our project a set of npm scripts have already\nbeen generated that perform various tasks such as testing/serving/building/etc.\n\nAt any time you can review the complete list of `npm scripts` available by viewing\n[package.json](./package.json) or by running the following command:\n\n```\n$ npm run\n```\n\nHere is complete list the the commands and their function\n- start - start dev server at [localhost:8080](https://localhost:8080)\n- build:prod - builds your project to deploy to a server\n- test - runs unit tests, for now it will just run linting.\n- lint - runs eslint against your code\n\nSo for example you can run `npm start` to start a dev server. You can now see your\napp running at [localhost:8080](https://localhost:8080)\nfirst time this will pull in your node deps and start a budo server\n\n## License\nMIT \u0026copy;\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrainyard%2Fchoo-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrainyard%2Fchoo-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrainyard%2Fchoo-cli/lists"}