Command Line Tool (CLI) for generate files.
This command is built following dotnet core global tools.
dotnet tool install -g vz-generatorvz init sample names:
vz init --list-samplesonly load specific sample:
vz init --with-sample abp --with-sample vue.piniaAfter init, please see options in .vz/generate.settings.json
The basic liquid syntax and builtin functions follow Scriban.
Notice
As name of paths or files not allowed the char '|', so by convention, we use '___' instead of '|'.
{{'nameIt'|pascal_case}} => NameIt
{{'NameIt'|camel_case}} => nameIt
{{'NameIt'|kebab_case}} => name-it
{{'NameIt'|snake_case}} => name_it
{{'person'|pluralize}} => people
{{'people'|singularize}} => person vz gBy default, g(generate) subcommand will ask what option you want to run.
You also can use -p <your option in .vz/generate.settings.json> to provide answer
vz g -p 'Create Abp'It will continue to ask you for some other setting which not store in .vz/generate.settings.json, such as the value of the variables. Also, can be provided as below:
vz g -p 'Create Abp' --var project=MyCompany.MyProject --var entity=Uservz init will create .vscode/settings.json to associate .vz/generate.settings.schema.json with .vz/generate.settings.json. if .vscode/settings.json is already exists, it will not override it, and you should update the file yourself with the content it will show you.
Be FREE to modify the file .vz/generate.settings.json, vz g will search the templates as you specified, load variables as you declared, and output the generated files to where you specified.
Even vz g -c <file path to your own settings.json> can override the default path to generate.settings.json, but the content of it should match the schema as .vz/generate.settings.schema.json stored.
Follow the Usage vz g -h.
Be FREE to submit (PRs) your own templates as default samples (for any languages any scenarios) which may helpful to others.
Auto tag and generate changelog.md by commit-and-tag-version
conventional commits
./set-git-hook.sh
npm i -g commit-and-tag-version # https://github.com/absolute-version/commit-and-tag-version#bumpfiles-packagefiles-and-updaters
commit-and-tag-version # --frist-releaseIDE: VS Code
DEBUG mode will use .vzx instead of .vz
- For DEBUG SubCommand
init:- should check
"args"in.vscode/launch.json - should check
dependsOnofbuildtask in.vscode/tasks.json, before build should runclean .vzxandzip samples
- should check
- For DEBUG SubCommand
g:- should check
"args"in.vscode/launch.json, and strings in it will treated as tokens (whitespace will not parsed). - should commented out the line
dependsOnofbuildtask in.vscode/tasks.json
- should check
All things work well.
IDE: VS Code
DEBUG mode will use .vzx instead of .vz
- For DEBUG SubCommand
init:- should check
"args"in.vscode/launch.json - should check
dependsOnofbuildtask in.vscode/tasks.json, before build should runclean .vzxandzip samples - the commands in task
clean .vzxshould be change to powershellRemove-Itemor sth works in the specific shell. - the commands in task
zip samplesshould be change to powershellCompress-Archiveor sth works in the specific shell.
- should check
- For DEBUG SubCommand
g:- should check
"args"in.vscode/launch.json, and strings in it will treated as tokens (whitespace will not parsed). - should commented out the line
dependsOnofbuildtask in.vscode/tasks.json
- should check
resgen maybe problem on windows when develop with pure dotnet core with vs code, but visual studio should work (not confirm).
the -w option of subommand g, will watch the folder which template files belong to, and regenerate the output in time. It facilitates the development of templates.
vz g -w It will not watch the setting file, or ask you for any options or inputs again (only watch templates).
In watch mode, output always override exists files.
vz rn subcommand can replace key/value in file content or file name or directory name.
vz rn ProjectName/ -r ProjectName=Demo -r CompanyName=Company # more options try: vz rn -h-
UseCases like codeBelt/generate-template-files, but here we got Liquid syntax for template files and paths.
-
Liquid scriban
-
Naming jquense/StringUtils