├── .all-contributorsrc ├── .github ├── assets │ ├── ss1.png │ └── ss2.png └── workflows │ └── test.yml ├── .gitignore ├── .husky ├── pre-commit └── pre-push ├── .prettierrc ├── .release-it.yml ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── package.json ├── src ├── cli.ts ├── fs.ts ├── git.ts ├── index.ts ├── npm.ts └── template.ts ├── templates ├── default │ ├── README.md │ ├── gitignore │ ├── package.json │ ├── src │ │ └── cli.js │ └── templates │ │ └── default │ │ └── README.md └── typescript │ ├── README.md │ ├── gitignore │ ├── package.json │ ├── src │ └── cli.ts │ ├── templates │ └── default │ │ └── README.md │ └── tsconfig.json ├── tests ├── fixtures │ ├── create-test │ │ ├── .gitignore │ │ ├── package.json │ │ ├── src │ │ │ └── cli.js │ │ └── templates │ │ │ └── default │ │ │ ├── README.md │ │ │ ├── gitignore │ │ │ ├── package.json │ │ │ ├── {{capital name}}-config │ │ │ └── README-{{upper architecture}}.md │ │ │ └── {{name}}.code-workspace │ └── minimal │ │ ├── .gitignore │ │ ├── package.json │ │ ├── src │ │ └── cli.js │ │ └── templates │ │ └── default │ │ ├── README.md │ │ ├── gitignore │ │ └── package.json └── index.test.ts ├── tsconfig.json ├── types ├── gitconfig.d.ts ├── is-utf8.d.ts └── license.js.d.ts └── yarn.lock /.all-contributorsrc: -------------------------------------------------------------------------------- 1 | { 2 | "projectName": "create-create-app", 3 | "projectOwner": "uetchy", 4 | "repoType": "github", 5 | "repoHost": "https://github.com", 6 | "files": [ 7 | "README.md" 8 | ], 9 | "imageSize": 100, 10 | "commit": true, 11 | "commitConvention": "angular", 12 | "contributors": [ 13 | { 14 | "login": "uetchy", 15 | "name": "uetchy", 16 | "avatar_url": "https://avatars0.githubusercontent.com/u/431808?v=4", 17 | "profile": "https://uechi.io/", 18 | "contributions": [ 19 | "code", 20 | "doc" 21 | ] 22 | }, 23 | { 24 | "login": "MurakamiShinyu", 25 | "name": "Shinyu Murakami", 26 | "avatar_url": "https://avatars1.githubusercontent.com/u/3324737?v=4", 27 | "profile": "https://vivliostyle.org/", 28 | "contributions": [ 29 | "code" 30 | ] 31 | }, 32 | { 33 | "login": "takahashim", 34 | "name": "Masayoshi Takahashi", 35 | "avatar_url": "https://avatars2.githubusercontent.com/u/10401?v=4", 36 | "profile": "http://twitter.com/takahashim", 37 | "contributions": [ 38 | "code" 39 | ] 40 | }, 41 | { 42 | "login": "alexanderl19", 43 | "name": "Alexander Liu", 44 | "avatar_url": "https://avatars.githubusercontent.com/u/41758627?v=4", 45 | "profile": "http://alexanderliu.com", 46 | "contributions": [ 47 | "code" 48 | ] 49 | }, 50 | { 51 | "login": "iVilja", 52 | "name": "Vilja", 53 | "avatar_url": "https://avatars.githubusercontent.com/u/24564003?v=4", 54 | "profile": "https://vilja.me", 55 | "contributions": [ 56 | "code" 57 | ] 58 | }, 59 | { 60 | "login": "lucas-labs", 61 | "name": "Lucas Colombo", 62 | "avatar_url": "https://avatars.githubusercontent.com/u/12949236?v=4", 63 | "profile": "https://lucaslabs.tech/", 64 | "contributions": [ 65 | "code" 66 | ] 67 | } 68 | ], 69 | "contributorsPerLine": 7, 70 | "skipCi": true 71 | } 72 | -------------------------------------------------------------------------------- /.github/assets/ss1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uetchy/create-create-app/69a87e3b0282d79d88b4d69c2811ee1c5aa82371/.github/assets/ss1.png -------------------------------------------------------------------------------- /.github/assets/ss2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/uetchy/create-create-app/69a87e3b0282d79d88b4d69c2811ee1c5aa82371/.github/assets/ss2.png -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | name: test 2 | on: 3 | push: 4 | pull_request: 5 | 6 | jobs: 7 | test: 8 | name: Test (${{ matrix.os }} / Node ${{ matrix.node }}) 9 | runs-on: ${{ matrix.os }} 10 | strategy: 11 | matrix: 12 | os: [ubuntu-latest, windows-latest] 13 | node: [14, 18] 14 | steps: 15 | - name: Checkout 16 | uses: actions/checkout@v3 17 | 18 | - name: Setup node 19 | uses: actions/setup-node@v3 20 | with: 21 | node-version: ${{ matrix.node }} 22 | 23 | # needed for test 24 | - uses: pnpm/action-setup@v2.1.0 25 | with: 26 | version: 6.0.2 27 | 28 | - name: Install dependencies 29 | run: yarn install 30 | 31 | - name: Test 32 | run: yarn test 33 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | lib/ 2 | tmp/ 3 | .vscode 4 | 5 | # Logs 6 | logs 7 | *.log 8 | npm-debug.log* 9 | yarn-debug.log* 10 | yarn-error.log* 11 | lerna-debug.log* 12 | 13 | # Diagnostic reports (https://nodejs.org/api/report.html) 14 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 15 | 16 | # Runtime data 17 | pids 18 | *.pid 19 | *.seed 20 | *.pid.lock 21 | 22 | # Directory for instrumented libs generated by jscoverage/JSCover 23 | lib-cov 24 | 25 | # Coverage directory used by tools like istanbul 26 | coverage 27 | *.lcov 28 | 29 | # nyc test coverage 30 | .nyc_output 31 | 32 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 33 | .grunt 34 | 35 | # Bower dependency directory (https://bower.io/) 36 | bower_components 37 | 38 | # node-waf configuration 39 | .lock-wscript 40 | 41 | # Compiled binary addons (https://nodejs.org/api/addons.html) 42 | build/Release 43 | 44 | # Dependency directories 45 | node_modules/ 46 | jspm_packages/ 47 | 48 | # TypeScript v1 declaration files 49 | typings/ 50 | 51 | # TypeScript cache 52 | *.tsbuildinfo 53 | 54 | # Optional npm cache directory 55 | .npm 56 | 57 | # Optional eslint cache 58 | .eslintcache 59 | 60 | # Microbundle cache 61 | .rpt2_cache/ 62 | .rts2_cache_cjs/ 63 | .rts2_cache_es/ 64 | .rts2_cache_umd/ 65 | 66 | # Optional REPL history 67 | .node_repl_history 68 | 69 | # Output of 'npm pack' 70 | *.tgz 71 | 72 | # Yarn Integrity file 73 | .yarn-integrity 74 | 75 | # dotenv environment variables file 76 | .env 77 | .env.test 78 | 79 | # parcel-bundler cache (https://parceljs.org/) 80 | .cache 81 | 82 | # next.js build output 83 | .next 84 | 85 | # nuxt.js build output 86 | .nuxt 87 | 88 | # gatsby files 89 | .cache/ 90 | public 91 | 92 | # vuepress build output 93 | .vuepress/dist 94 | 95 | # Serverless directories 96 | .serverless/ 97 | 98 | # FuseBox cache 99 | .fusebox/ 100 | 101 | # DynamoDB Local files 102 | .dynamodb/ 103 | 104 | # TernJS port file 105 | .tern-port 106 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | . "$(dirname "$0")/_/husky.sh" 3 | 4 | npx pretty-quick --staged 5 | npx lint-staged 6 | -------------------------------------------------------------------------------- /.husky/pre-push: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | . "$(dirname "$0")/_/husky.sh" 3 | 4 | npm test 5 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true 3 | } 4 | -------------------------------------------------------------------------------- /.release-it.yml: -------------------------------------------------------------------------------- 1 | # https://github.com/release-it/release-it/blob/master/config/release-it.json 2 | git: 3 | commitMessage: 'chore: release v${version}' 4 | github: 5 | release: true 6 | releaseName: 'v${version}' 7 | hooks: 8 | before:init: npm test 9 | plugins: 10 | '@release-it/conventional-changelog': # https://github.com/release-it/conventional-changelog 11 | preset: angular 12 | infile: CHANGELOG.md 13 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # [7.3.0](https://github.com/uetchy/create-create-app/compare/v7.2.1...v7.3.0) (2022-06-28) 2 | 3 | ### Bug Fixes 4 | 5 | - more slash ([2083a33](https://github.com/uetchy/create-create-app/commit/2083a333612fc54f5e89b0b00bc00186a4fe102b)) 6 | - only replace `gitignore` file ([bffca9c](https://github.com/uetchy/create-create-app/commit/bffca9ccd225fafa134b872a5e61d192064efe0b)) 7 | - use shell to run npm command ([101e03c](https://github.com/uetchy/create-create-app/commit/101e03c6c0a846d3b07c951d2263c1e4f31292c2)) 8 | - **windows:** slash before format ([8575810](https://github.com/uetchy/create-create-app/commit/8575810f2be349bcae08694233a7e36fbf2f49bc)) 9 | 10 | ### Features 11 | 12 | - guess pm, skip install/git ([#42](https://github.com/uetchy/create-create-app/issues/42)) by [@lucas-labs](https://github.com/lucas-labs) ([718b190](https://github.com/uetchy/create-create-app/commit/718b1909a2afa5adfbd1a7e1a19b4627e7de1685)) 13 | - more options for prompts ([6623b9b](https://github.com/uetchy/create-create-app/commit/6623b9bb3f6b9be2b88d7f2cbe2c438e3b7fefbc)), closes [#36](https://github.com/uetchy/create-create-app/issues/36) 14 | 15 | ## [7.2.1](https://github.com/uetchy/create-create-app/compare/v7.2.0...v7.2.1) (2022-06-09) 16 | 17 | ### Bug Fixes 18 | 19 | - typescript template is missing type defs for node ([e360b57](https://github.com/uetchy/create-create-app/commit/e360b57502d03057f836cdf93601ed91856da2c7)) 20 | 21 | # [7.2.0](https://github.com/uetchy/create-create-app/compare/v7.1.0...v7.2.0) (2022-03-26) 22 | 23 | ### Bug Fixes 24 | 25 | - prevent null being appeared on LICENSE ([c8e8ff3](https://github.com/uetchy/create-create-app/commit/c8e8ff3a983c1decafe2662eb9f9988fcc32da31)), closes [#30](https://github.com/uetchy/create-create-app/issues/30) 26 | 27 | ### Features 28 | 29 | - add cli param for node.js package manager ([a1bb7a6](https://github.com/uetchy/create-create-app/commit/a1bb7a6bb4f632054b09aea8cc0be6964f7e06c9)), closes [#29](https://github.com/uetchy/create-create-app/issues/29)## [7.0.2](https://github.com/uetchy/create-create-app/compare/v7.0.1...v7.0.2) (2021-03-10) 30 | 31 | ### Bug Fixes 32 | 33 | - avoid crashes when .gitconfig exists but user is not set ([1428db3](https://github.com/uetchy/create-create-app/commit/1428db30eb1417280b6c245952ed93eae3f79c8c)) 34 | 35 | ## [7.0.1](https://github.com/uetchy/create-create-app/compare/v7.0.0...v7.0.1) (2020-08-27) 36 | 37 | # [7.0.0](https://github.com/uetchy/create-create-app/compare/v6.0.1...v7.0.0) (2020-08-27) 38 | 39 | ### Bug Fixes 40 | 41 | - choices only accept string[] ([180d4cd](https://github.com/uetchy/create-create-app/commit/180d4cdc073f6f649faecade8b971478fd3e2666)) 42 | 43 | ### Features 44 | 45 | - allow to choose UNLICENSED as license ([#25](https://github.com/uetchy/create-create-app/issues/25)) ([7275769](https://github.com/uetchy/create-create-app/commit/72757693b2a6d5c7da9098bac43b38b4f81c3ce2)), closes [#22](https://github.com/uetchy/create-create-app/issues/22) 46 | 47 | ### BREAKING CHANGES 48 | 49 | - {"name": string, "value": string} style in `choices` has been deprecated. 50 | 51 | ## [6.0.1](https://github.com/uetchy/create-create-app/compare/v6.0.0...v6.0.1) (2020-08-10) 52 | 53 | ### Bug Fixes 54 | 55 | - Fails on Windows when Yarn is not installed ([adf4f3f](https://github.com/uetchy/create-create-app/commit/adf4f3fffad14dafa92c859da0502acf41d2b370)) 56 | 57 | # [6.0.0](https://github.com/uetchy/create-create-app/compare/v5.7.0...v6.0.0) (2020-08-04) 58 | 59 | ### Bug Fixes 60 | 61 | - rename to modifyName ([6fba9b9](https://github.com/uetchy/create-create-app/commit/6fba9b97bd4f8cb460ffb515991adcaeac8cc99e)) 62 | - update epicfail ([d55fdca](https://github.com/uetchy/create-create-app/commit/d55fdcae92c9068fcbd1c6ad47f552b13e52aa6a)) 63 | 64 | ### Features 65 | 66 | - init epicfail inside create function ([b7168ad](https://github.com/uetchy/create-create-app/commit/b7168ade460dbb0931ac0ed71d471f92d4804b6b)) 67 | - new helper 'space' ([996861e](https://github.com/uetchy/create-create-app/commit/996861e73e84db6e33f3fda4a95a75ffa240c0c2)) 68 | 69 | ### BREAKING CHANGES 70 | 71 | - handleName => modifyName 72 | 73 | # [5.7.0](https://github.com/uetchy/create-create-app/compare/v5.6.1...v5.7.0) (2020-07-29) 74 | 75 | ### Bug Fixes 76 | 77 | - avoid crashes when git is unavailable ([2f3e50a](https://github.com/uetchy/create-create-app/commit/2f3e50a033c05b42924b8c356a46c97e4c4d05b8)) 78 | - failed to copy template files on Windows ([#17](https://github.com/uetchy/create-create-app/issues/17)) ([1e8d6b7](https://github.com/uetchy/create-create-app/commit/1e8d6b7b36fbd0ed23712751854a126f41b44c6b)) 79 | 80 | ### Features 81 | 82 | - add types ([be72e93](https://github.com/uetchy/create-create-app/commit/be72e9331232f00daeafab9907792dcc4d7c9aa8)) 83 | 84 | ## [5.0.1](https://github.com/uetchy/create-create-app/compare/v5.0.0...v5.0.1) (2020-06-24) 85 | 86 | # [5.0.0](https://github.com/uetchy/create-create-app/compare/v4.1.0...v5.0.0) (2019-10-09) 87 | 88 | ### Bug Fixes 89 | 90 | - dissolve templateRoot into options ([07296b4](https://github.com/uetchy/create-create-app/commit/07296b4)) 91 | 92 | ### BREAKING CHANGES 93 | 94 | - all create() must be fixed 95 | 96 | # [4.1.0](https://github.com/uetchy/create-create-app/compare/v4.0.4...v4.1.0) (2019-10-09) 97 | 98 | ### Features 99 | 100 | - add uuid template string ([5795ddb](https://github.com/uetchy/create-create-app/commit/5795ddb)) 101 | 102 | ## [4.0.4](https://github.com/uetchy/create-create-app/compare/v4.0.3...v4.0.4) (2019-10-09) 103 | 104 | ### Bug Fixes 105 | 106 | - no escape template string ([8b3e642](https://github.com/uetchy/create-create-app/commit/8b3e642)) 107 | 108 | ## [4.0.3](https://github.com/uetchy/create-create-app/compare/v4.0.0...v4.0.3) (2019-10-08) 109 | 110 | ### Bug Fixes 111 | 112 | - update lib version ([58f787e](https://github.com/uetchy/create-create-app/commit/58f787e)) 113 | 114 | # [4.0.0](https://github.com/uetchy/create-create-app/compare/v3.1.0...v4.0.0) (2019-10-08) 115 | 116 | ### Features 117 | 118 | - new template system ([e8e6bd9](https://github.com/uetchy/create-create-app/commit/e8e6bd9)) 119 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contribution Guide 2 | 3 | ## Development Guide 4 | 5 | ```bash 6 | git clone https://github.com/uetchy/create-create-app.git && cd create-create-app 7 | npm install 8 | npm run dev 9 | node lib/cli.js test 10 | ``` 11 | 12 | ## Release Guide (Maintainers only) 13 | 14 | ```bash 15 | release-it 16 | ``` 17 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2020 Yasuaki Uechi 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 |

✨ Create Create App

3 |
Create your own `create-something` app.
4 |
5 | screenshot 6 |

7 | 8 | 9 | 10 |
11 | 12 | ## Why? 13 | 14 | - ⚖️ **Built-in License selector** No need to worry about license things. 15 | - 🎩 **Template engine** You can use template strings in text files, file names, and folder names. 16 | - 💄 **Highly customizable** Can change caveat text, add extra command-line options. 17 | 18 | ## Table of contents 19 | 20 | 21 | 22 | 23 | - [✨ Create Create App](#-create-create-app) 24 | - [Why?](#why) 25 | - [Table of contents](#table-of-contents) 26 | - [Quick Start](#quick-start) 27 | - [1. Bootstrap your project](#1-bootstrap-your-project) 28 | - [2. Add and edit template files](#2-add-and-edit-template-files) 29 | - [3. Build the app (TypeScript only)](#3-build-the-app-typescript-only) 30 | - [4. Publish package to npm](#4-publish-package-to-npm) 31 | - [5. PROFIT](#5-profit) 32 | - [Template](#template) 33 | - [Advanced: Multiple templates](#advanced-multiple-templates) 34 | - [Helper functions](#helper-functions) 35 | - [`upper`](#upper) 36 | - [`lower`](#lower) 37 | - [`capital`](#capital) 38 | - [`camel`](#camel) 39 | - [`snake`](#snake) 40 | - [`kebab`](#kebab) 41 | - [`space`](#space) 42 | - [`uuid`](#uuid) 43 | - [Config](#config) 44 | - [templateRoot (required)](#templateroot-required) 45 | - [modifyName (default: `undefined`)](#modifyname-default-undefined) 46 | - [extra (default: `undefined`)](#extra-default-undefined) 47 | - [defaultDescription (default: `description`)](#defaultdescription-default-description) 48 | - [defaultAuthor (default: `user.name` in `~/.gitconfig` otherwise `Your name`)](#defaultauthor-default-username-in-gitconfig-otherwise-your-name) 49 | - [defaultEmail (default: `user.email` in `~/.gitconfig` otherwise `Your email`)](#defaultemail-default-useremail-in-gitconfig-otherwise-your-email) 50 | - [defaultTemplate (default: `default`)](#defaulttemplate-default-default) 51 | - [defaultLicense (default: `MIT`)](#defaultlicense-default-mit) 52 | - [defaultPackageManager (default: `undefined`)](#defaultpackagemanager-default-undefined) 53 | - [promptForDescription (default: `true`)](#promptfordescription-default-true) 54 | - [promptForAuthor (default: `true`)](#promptforauthor-default-true) 55 | - [promptForEmail (default: `true`)](#promptforemail-default-true) 56 | - [promptForTemplate (default: `false`)](#promptfortemplate-default-false) 57 | - [promptForLicense (default: `true`)](#promptforlicense-default-true) 58 | - [promptForPackageManager (default: `false`)](#promptforpackagemanager-default-false) 59 | - [skipGitInit (default: `false`)](#skipgitinit-default-false) 60 | - [skipNpmInstall (default: `false`)](#skipnpminstall-default-false) 61 | - [after (default: `undefined`)](#after-default-undefined) 62 | - [caveat (default: `undefined`)](#caveat-default-undefined) 63 | - [`AfterHookOptions`](#afterhookoptions) 64 | - [Showcase](#showcase) 65 | - [Contribution](#contribution) 66 | - [Contributors ✨](#contributors-) 67 | 68 | 69 | 70 | ## Quick Start 71 | 72 | Let's create `create-greet` package in five steps. 73 | 74 | ### 1. Bootstrap your project 75 | 76 | ```shell 77 | npx create-create-app greet # simplest route 78 | npm init create-app greet # requires npm 6+ 79 | yarn create create-app greet # requires Yarn 0.25+ 80 | ``` 81 | 82 | You will then be asked about your project. 83 | 84 | ![screenshot](https://raw.githubusercontent.com/uetchy/create-create-app/master/.github/assets/ss1.png) 85 | 86 | ### 2. Add and edit template files 87 | 88 | ```shell 89 | cd create-greet 90 | ``` 91 | 92 | Then you can see the `templates/default` folder where the actual template files go. 93 | 94 | Note that `.gitignore` files should be named `gitignore` to avoid being ignored on publishing. 95 | 96 | ### 3. Build the app (TypeScript only) 97 | 98 | Run `npm run build` or `yarn build` to transpile TypeScript code into JavaScript. If you chose the default template, this step is not necessary. 99 | 100 | ### 4. Publish package to npm 101 | 102 | Run `npm publish` or `yarn publish` to publish your `create-greet` app to npm. 103 | 104 | ### 5. PROFIT 105 | 106 | ```bash 107 | npx create-greet ohayo 108 | npm init greet ohayo 109 | yarn create greet ohayo 110 | ``` 111 | 112 | ![screenshot](https://raw.githubusercontent.com/uetchy/create-create-app/master/.github/assets/ss2.png) 113 | 114 | ## Template 115 | 116 | Edit files inside `templates/default`. Every file name, directory name, and a text file will be processed through Handlebars template engine to replace all template strings with the respective value. 117 | 118 | Built-in variables are: 119 | 120 | - `{{name}}` package name (e.g. `ohayo`) 121 | - `{{description}}` package description 122 | - `{{author}}` author name (e.g. `John Doe`) 123 | - `{{email}}` author email (e.g. `john@example.com`) 124 | - `{{contact}}` author name formatted with `{{name}} <{{email}}>`. If email is missing, simply `{{name}}` 125 | - `{{license}}` package license (e.g. `MIT`) 126 | - `{{year}}` current year (e.g. `2021`) 127 | - `{{template}} selected template name (e.g. `typescript`) 128 | - `{{packageManager}} package manager (e.g. `yarn`) 129 | 130 | ### Advanced: Multiple templates 131 | 132 | Creates a new directory in the location defined by `templateRoot`. It can be accessed via `--template` flag (e.g. `create-something --template