The best practices for front-end git flow
npm install balm-git-flow> The best practices for front-end git flow
- One install, unified development process for all git projects
- Relatively simple release initialization
- Easy to configure and publish multiple environment branches
- Support for publishing independent repositories
1. main(source code) -> dev(feat, fix...) -> prod(test, pre-production...)
2. main(source code) -> prod(production)
1. Node.js >=18 (>=14.18.0 on Windows)
2. Git 2.6.0+
``sh`
npm install -g balm-git-flow
> ⚠️ NOTE: For Windows users, use npm install -g balm-git-flow@legacy
First, create a balm.env.js file in your project root directory (use balm-git doctor)
| Variable Name | Type | Default | Description |
| -------------------------------- | ----------------- | -------------------- | -------------------------------------------------------------------------------------------------- |
| BALM_GIT_FLOW_MAIN | string | 'main' | main branch (source code) |string
| BALM_GIT_FLOW_RELEASE | , array | 'release' | production release branch(es) |array
| BALM_GIT_FLOW_RELEASES | | ['release'] | all release branches |array
| BALM_GIT_FLOW_SCRIPTS | | ['build'] | all build scripts corresponding to the release branches ( the keys of scripts in package.json) |string
| BALM_GIT_FLOW_RELEASE_SCRIPTS | | JSON.stringify({}) | associated scripts and release branches ({ [script: string]: [releases: string[]] }) |string
| BALM_GIT_FLOW_BUILD_DIR | | 'dist' | build out dir (by npm-run-script) |boolean
| BALM_GIT_FLOW_IGNORE_UNCOMMITTED | | false | ignore uncommitted for workflow |boolean
| BALM_GIT_FLOW_USE_CUSTOM_MESSAGE | | false | use custom log message |array
| BALM_GIT_FLOW_REPOSITORIES | | | independent repositories |string
| BALM_GIT_FLOW_SITE | | | production release branch for independent repositories |
- release scripts settings
- Method 1:
`ini`
BALM_GIT_FLOW_RELEASES = ['test', 'release'];
BALM_GIT_FLOW_SCRIPTS = ['build:test', 'build:release'];
- Method 2:
`js`
BALM_GIT_FLOW_RELEASE_SCRIPTS = JSON.stringify({
'build:test': ['test-a', 'test-b'],
'build:release': ['release']
});
- balm-git doctor: check the project environmentbalm-git dev
- : create new branch for development from origin main branchbalm-git prod
- : release process
> ⚠️ NOTE: For Windows users, use balm-git-doctor, balm-git-dev and balm-git-prod`