@kwhitley/yarn-release

1.9.1 • Public • Published

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 @kwhitley/yarn-release

Exposed Commands

  • Just one: yarn release --major|minor|patch|type=[something] [options]

Options

--type            version type <major|minor|patch|alpha|beta|rc|etc>
--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 <dir>       directory to build/release from (default=root)
--dest <dir>      temporary build directory (default=./.dist)
--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)

{
  "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.

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.9.1
    0
    • latest

Version History

Package Sidebar

Install

npm i @kwhitley/yarn-release

Weekly Downloads

0

Version

1.9.1

License

MIT

Unpacked Size

11.3 kB

Total Files

5

Last publish

Collaborators

  • krwhitley