UNPKG

@semantic-release/npm

Version:

semantic-release plugin to publish a npm package

43 lines (36 loc) 1.13 kB
const path = require('path'); const execa = require('execa'); const getRegistry = require('./get-registry'); const getReleaseInfo = require('./get-release-info'); module.exports = async ({npmPublish, pkgRoot}, pkg, context) => { const { cwd, env, stdout, stderr, nextRelease: {version}, logger, } = context; if (npmPublish !== false && pkg.private !== true) { const basePath = pkgRoot ? path.resolve(cwd, pkgRoot) : cwd; const registry = getRegistry(pkg, context); logger.log('Publishing version %s to npm registry', version); const result = execa('npm', ['publish', basePath, '--registry', registry], {cwd, env}); result.stdout.pipe( stdout, {end: false} ); result.stderr.pipe( stderr, {end: false} ); await result; logger.log(`Published ${pkg.name}@${pkg.version} on ${registry}`); return getReleaseInfo(pkg, context, registry); } logger.log( 'Skip publishing to npm registry as %s is %s', ...(npmPublish === false ? ['npmPublish', false] : ["package.json's private property", true]) ); return false; };