https://github.com/kwhitley/yarn-release
For clean module/component releasing to NPM via Yarn
https://github.com/kwhitley/yarn-release
Last synced: 9 days ago
JSON representation
For clean module/component releasing to NPM via Yarn
- Host: GitHub
- URL: https://github.com/kwhitley/yarn-release
- Owner: kwhitley
- Created: 2019-03-11T16:28:53.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2022-10-03T20:10:23.000Z (over 2 years ago)
- Last Synced: 2025-04-13T03:09:46.449Z (9 days ago)
- Language: JavaScript
- Size: 86.9 KB
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Simplifies module releases to NPM via Yarn
===# Why?
For simplifying the steps when publishing to NPM (especially if from a subfolder):
- copying the root package.json into the build folder
- cleaning it up to remove dev deps
- navigating into that folder
- incrementing the appropriate version number
- publishing
- making sure that version number makes it back down to the root project to keep it all in sync
- navigating back out to the root# Installation
```
yarn add -D yarn-release
```# Exposed Commands
- Just one: `yarn release --major|minor|patch|type=[something] [options]`### Options
```bash
--type version type
--major major release X.#.# for breaking changes, short for --type=major
--minor minor release #.X.# non-breaking for feature additions
--patch patch release #.#.X for patch fixes/tweaks
--src directory to build/release from (default=root)
--dest temporary build directory (default=./.dist)
--tag tag and push release to git
--test build, but do not publish (great for testing locally)
--nocleanup leave build folder after publishing (great for testing locally)
--nopublish do not publish new version to NPM
--public equivalent to npm publish --access=public
--commit adds unstaged changes (including package.json update) to git and commits
--push includes --commit, while also doing a "git push" (assumes ref has been set up)
-s, --silent asks no questions (automated)
-v, --verbose writes a bunch of extra stuff to the console
-V, --version output the version number
-h, --help output usage information
```### Example Usage (package.json)
```js
{
"scripts": {
"build": "do some stuff",
"prerelease": "test some stuff",
"release": "yarn build && release --src=build --push",
"release:major": "yarn release - --major",
"release:minor": "yarn release - --minor",
"release:patch": "yarn release - --patch",
"release:rc": "yarn release - --type=rc",
"release:verify": "yarn release - --type=rc --verbose --test --nopublish --nocleanup"
}
}
```### Caveats
- This build will do a generic `yarn publish` without specific `--access=public` flag,
meaning it will default to private if it's never been published. Solution is to publish once with that
flag set, then use `release` to maintain.