git-package v0.4.0
git-package
git-package allows you to manage releases backed by private git-repos while
keeping your history clean.
npm dependencies that point to git repos must have their compiled code
checked-in. In order to keep history clean, git-package creates release
branches where compiled files are removed from .gitignore.
Prerequisites
- A remote named
origin. - SSH keys configured properly to access private git repo.
Usage
Add
git-packageto your package$ npm install --dev git-package
Add
git-packageconfig to yourpackage.jsonfile specifying the folder containing compiled code. If you need to make release from specific branch, add it to your config also, by defaultgit-packageusesmasterbranch.// fancy-private-pkg/package.json
{ ... "gitPackage": { "includeIgnored": "lib" , "branch": "main" } }
Add your compiled code folder to
.gitignore, and commit normally in your branch.Run
git-package$ npm run git-package minor
This will do the following:
- Ensure that the command is run from
masterbranch. - Run
npm run build. - Bump package.json with the specified semver component: major/minor/patch.
- Create a commit in
masterbranch containing package.json version bump. - Create a
release/vX.X.Xbranch. - Remove specified folders from
.gitgnore. - Create a commit containing compiled code.
- Tag it as
vX.X.X. - Push
master,release/vX.X.XandvX.X.Xtag.
- Ensure that the command is run from
You can now from another project, point to that private repo by adding this to
package.jsonfile:// another-project/package.json
{ "fancy-private-project": "git+ssh://git@github.com/your-org/fancy-private-pkg#v1.2.3", }