A 'npm/yarn publish' API wrapper with my preferred defaults that returns a promise.
- api based, so you can call from your scripts, but spawns the actual commands
- run either Yarn (
option.yarn = true
) or NPM (default) - perfect for embedding into your build scripts (Gulp anyone?)
-
--access public
by default (publishing scoped packages is simpler) - optionally checks if package version is already on NPM
example
const publish = require( "@futagoza/publish-package" );
publish( __dirname, { checkVersion: true } )
.catch( details => {
console.error( details.stderr );
process.exit( 1 );
} )
.then( () => console.log( "Yahoo!" ) );
options
function publish( path?: string, options: {} ): Promise;
api option | npm/yarn cli option | description |
---|---|---|
access | --access scope | See https://docs.npmjs.com/cli/publish |
checkVersion | Will check on NPM before publishing | |
dir | Alternative to the path argument1 | |
dry-run | --dry-run | See https://docs.npmjs.com/cli/publish |
dry | --dry-run | Alias for dry-run |
dryRun | --dry-run | Alias for dry-run |
folder | Alternative to the path argument1 | |
log | An optional logging function2 | |
new-version | --new-version value | See https://yarnpkg.com/lang/en/docs/cli/publish/ |
newVersion | --new-version value | Alias for new-version |
otp | --otp value | See https://docs.npmjs.com/cli/publish |
otpcode | --otp value | Alias for otp |
path | Alternative to the path argument1 | |
private | --access restricted | If true , uses --access restricted
|
public | --access public | If true , uses --access public (default) |
scoped | --access public | If true , uses --access public
|
registry | --registry url | See https://docs.npmjs.com/misc/registry |
reg | --registry url | Alias for registry |
restricted | --access restricted | If true , uses --access restricted
|
runOpts | Option's to send to @futagoza/node-run | |
tag | --tag name | See https://docs.npmjs.com/cli/publish |
version | --new-version value | Alias for new-version |
yarn | Will use yarn publish instead of npm publish
|
- Can be used in place of path (e.g.
publish( { dir: ... } )
) - Check
defaultLogger
in @futagoza/gulp-publish-package/index.js for an example
NOTE: To circumvent an issue with running npm publish
from a yarn run ...
command, the registry option is set to https://registry.npmjs.org/ by default when running npm publish
only, otherwise it is only included when specified.
@futagoza/publish-package is Copyright (c) 2018+ Futago-za Ryuu