CAZ (Create App Zen)
It's a a simple template-based Scaffolding tools for my personal productivity, inspired by Yeoman & Vue CLI 2 & etc.
For more introduction, please refer to the How it works.
I'll give you specific reasons later.
# install it globally
$ npm install -g caz
# or yarn
$ yarn global add caz
Create new project from a template.
$ caz <template> [project] [-f|--force] [-o|--offline]
# caz with an official template
$ caz <template> [project]
# caz with a github repo
$ caz <owner>/<repo> [project]
If you only use it occasionally, I recommend that you use npx
to run caz
directly.
$ npx caz <template> [project] [-f|--force] [-o|--offline]
-f, --force
: Overwrite if the target exists-o, --offline
: Try to use an offline template$ caz nm my-project
The above command pulls the template from caz-templates/nm, then prompts for some information according to the configuration of this template, and generate the project at ./my-project
.
$ caz nm#typescript my-project
By running this command, CAZ will pulls the template from typescript branch of caz-templates/nm.
$ caz zce/nm my-project
The above command pulls the template from zce/nm. This means that you can also pull templates from your public GitHub repository.
Public repository is necessary.
Instead of a GitHub repo, you can also use a template on your local file system.
e.g.
$ caz ~/local/template my-project
The above command use the template from ~/local/template
.
Instead of a GitHub repo, you can also use a template with a zip file uri.
e.g.
$ caz https://cdn.zce.me/boilerplate.zip my-project
The above command will download & extract template from https://cdn.zce.me/boilerplate.zip
.
$ caz nm my-project --offline
By running this command, CAZ will try to find a cached version of nm
template or download from GitHub if it's not yet cached.
Show all available templates
$ caz list [owner] [-j|--json] [-s|--short]
[owner]
: GitHub orgs or user slug, default: 'caz-templates'
-j, --json
: Output with json format-s, --short
: Output with short formatCurrent available templates list:
Maybe more: https://github.com/caz-templates
You can also run
$ caz list
to see all available official templates in real time.
$ caz template my-template
The above command will pulls the template from caz-templates/template, and help you create your own CAZ template.
To create and distribute your own template, please refer to the How to create template.
Maybe fork an official template is also a good decision.
CAZ will read the configuration file in ~/.cazrc
, default config:
; template download registry,
; {owner} & {name} & {branch} will eventually be replaced by the corresponding value.
registry = https://github.com/{owner}/{name}/archive/{branch}.zip
; template offlicial organization name
official = caz-templates
; default template branch name
branch = master
This means that you can customize the configuration by modifying the configuration file.
For example, in your ~/.cazrc
:
registry = https://gitlab.com/{owner}/{name}/archive/{branch}.zip
official = faker
branch = dev
Then run the following command:
$ caz nm my-project
The above command will download & extract template from https://gitlab.com/faker/nm/archive/dev.zip
.
# install it locally
$ npm install caz
# or yarn
$ yarn add caz
with ESM and async/await:
import caz from 'caz'
;(async () => {
try {
const template = 'nm'
// project path (relative cwd or full path)
const project = 'my-project'
const options = { force: false, offline: false }
// scaffolding by caz...
await caz(template, project, options)
// success created my-project by nm template
} catch (e) {
// error handling
console.error(e)
}
})()
or with CommonJS and Promise:
const { default: caz } = require('caz')
const template = 'nm'
// project path (relative cwd or full path)
const project = 'my-project'
const options = { force: false, offline: false }
// scaffolding by caz...
caz(template, project, options)
.then(() => {
// success created my-project by nm template
})
.catch(e => {
// error handling
console.error(e)
})
This means that you can develop your own scaffolding module based on it.
To create and distribute your own scaffolding tools, please refer to the How to create scaffolding tools based on CAZ.
Create new project from a template
string
string
'.'
object
{}
Type: boolean
Details: overwrite if the target exists
Default: false
Type: boolean
Details: try to use an offline template
Default: false
👉 🛠 ⚙
Joking: I want to make wheels ;P
The real reason is that I think I need a scaffolding tool that is more suitable for my personal productivity.
Nothing else.
P.S. The picture is from the Internet, but I have forgotten the specific source, sorry to the author.
The core code is based on the middleware mechanism provided by zce/mwa.
The following middleware will be executed sequentially.
npm | yarn | pnpm install
command.git init && git add && git commit
command.The following are the features I want to achieve or are under development:
See the open issues for a list of proposed features (and known issues).
git checkout -b my-awesome-feature
git commit -am 'Add some feature'
git push -u origin my-awesome-feature
NOTE: Be sure to merge the latest from "upstream" before making a pull request!
Distributed under the MIT License. See LICENSE for more information. © 汪磊
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。