For clean module/component releasing to NPM via Yarn
For simplifying the steps when publishing to NPM (especially if from a subfolder):
yarn add -D yarn-release
yarn release --major|minor|patch|type=[something] [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)
--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
{
"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"
}
}
yarn publish
without specific --access=public
flag,release
to maintain.