The scaffold demo for the future
原理:https://github.com/jsany/cli-theory
- typescript
- eslint、prettier、commitlint
- local template
- remote template
- use config first
- node >=10
when npm install
in lifecyle of postinstall
will copy .clikitrc.json
to $HOME/.clikitrc.json
, then use it first, you can edit this json file what you wanna
- githubToken: String - personal github token, default is
''
- localTemplates: Object - local template
- name: String - it must
root/templates
first level subdirectory name - message: String - about this template description, it will appear in prompt
- name: String - it must
- remoteTemplates: Object - remote template
- name: String - it must repository(go rules detail)
- message: String - about this template description, it will appear in prompt
- bootstrap: Object - it will assign top default bootstrap
- bootstrap: Object - it will run after project generate
- npm: Array - npm cmd, like
npm i
- git: Array - git cmd, like
git init
- open: Array - open cmd(ide), like
code .
- npm: Array - npm cmd, like
.clikitrc.json
default is:
{
"githubToken": "",
"localTemplates": [
{
"name": "template-a",
"message": "Project A(template-a)"
},
{
"name": "template-b",
"message": "Project B(template-b)"
}
],
"remoteTemplates": [
{
"name": "github:jsany/template-main#main",
"message": "The main project(template-main)"
},
{
"name": "github:jsany/template-secondary#main",
"message": "The secondary project(template-secondary)"
},
{
"name": "github:jsany/template-lerna#main",
"message": "The mono project(template-lerna)",
"bootstrap": {
"npm": ["yarn"]
}
}
],
"bootstrap": {
"npm": ["npm install"],
"git": ["git init -b main"],
"open": ["code ."]
}
}
git clone https://github.com/jsany/cli-kit.git
cd cli-kit && yarn install
yarn compile
yarn link
It already publish to npm, so you can npm i -g @jsany/cli-kit
instead of above step, of course it is suggested as template or demo, base it diy yourself
cli-kit init
cli-kit info
cli-kit config
Give a ⭐️ if this project helped you!
This README was generated with ❤️ by readme-md-generator