@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.

Package Sidebar

Install

npm i @kwhitley/yarn-release

Weekly Downloads

8

Version

1.9.1

License

MIT

Unpacked Size

11.3 kB

Total Files

5

Last publish

Collaborators

  • krwhitley