@futagoza/publish-package

A 'npm/yarn publish' wrapper with my preferred defaults.

Usage no npm install needed!

<script type="module">
  import futagozaPublishPackage from 'https://cdn.skypack.dev/@futagoza/publish-package';
</script>

README

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
  1. Can be used in place of path (e.g. publish( { dir: ... } ))
  2. 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.


History license

@futagoza/publish-package is Copyright (c) 2018+ Futago-za Ryuu