A better `npm publish`

Overview

np XO code style

A better npm publish

Why

  • Interactive UI
  • Ensures you are publishing from your release branch (main and master by default)
  • Ensures the working directory is clean and that there are no unpulled changes
  • Reinstalls dependencies to ensure your project works with the latest dependency tree
  • Ensures your Node.js and npm versions are supported by the project and its dependencies
  • Runs the tests
  • Bumps the version in package.json and npm-shrinkwrap.json (if present) and creates a git tag
  • Prevents accidental publishing of pre-release versions under the latest dist-tag
  • Publishes the new version to npm, optionally under a dist-tag
  • Rolls back the project to its previous state in case publishing fails
  • Pushes commits and tags (newly & previously created) to GitHub/GitLab
  • Supports two-factor authentication
  • Enables two-factor authentication on new repositories
    (does not apply to external registries)
  • Opens a prefilled GitHub Releases draft after publish
  • Warns about the possibility of extraneous files being published
  • See exactly what will be executed with preview mode, without pushing or publishing anything remotely
  • Supports GitHub Packages

Prerequisite

  • Node.js 10 or later
  • npm 6.8.0 or later
  • Git 2.11 or later

Install

$ npm install --global np

Usage

$ np --help

  Usage
    $ np <version>

    Version can be:
      patch | minor | major | prepatch | preminor | premajor | prerelease | 1.2.3

  Options
    --any-branch            Allow publishing from any branch
    --branch                Name of the release branch (default: main | master)
    --no-cleanup            Skips cleanup of node_modules
    --no-tests              Skips tests
    --yolo                  Skips cleanup and testing
    --no-publish            Skips publishing
    --preview               Show tasks without actually executing them
    --tag                   Publish under a given dist-tag
    --no-yarn               Don't use Yarn
    --contents              Subdirectory to publish
    --no-release-draft      Skips opening a GitHub release draft
    --release-draft-only    Only opens a GitHub release draft
    --test-script           Name of npm run script to run tests before publishing (default: test)
    --no-2fa                Don't enable 2FA on new packages (not recommended)
    --message               Version bump commit message. `%s` will be replaced with version. (default: '%s' with npm and 'v%s' with yarn)

  Examples
    $ np
    $ np patch
    $ np 1.0.2
    $ np 1.0.2-beta.3 --tag=beta
    $ np 1.0.2-beta.3 --tag=beta --contents=dist

Interactive UI

Run np without arguments to launch the interactive UI that guides you through publishing a new version.

Config

np can be configured both locally and globally. When using the global np binary, you can configure any of the CLI flags in either a .np-config.js, .np-config.cjs or .np-config.json file in the home directory. When using the local np binary, for example, in a npm run script, you can configure np by setting the flags in either a top-level np field in package.json or in a .np-config.js, .np-config.cjs or .np-config.json file in the project directory. If it exists, the local installation will always take precedence. This ensures any local config matches the version of np it was designed for.

Currently, these are the flags you can configure:

  • anyBranch - Allow publishing from any branch (false by default).
  • branch - Name of the release branch (master by default).
  • cleanup - Cleanup node_modules (true by default).
  • tests - Run npm test (true by default).
  • yolo - Skip cleanup and testing (false by default).
  • publish - Publish (true by default).
  • preview - Show tasks without actually executing them (false by default).
  • tag - Publish under a given dist-tag (latest by default).
  • yarn - Use yarn if possible (true by default).
  • contents - Subdirectory to publish (. by default).
  • releaseDraft - Open a GitHub release draft after releasing (true by default).
  • testScript - Name of npm run script to run tests before publishing (test by default).
  • 2fa - Enable 2FA on new packages (true by default) (setting this to false is not recommended).
  • message - The commit message used for the version bump. Any %s in the string will be replaced with the new version. By default, npm uses %s and Yarn uses v%s.

For example, this configures np to never use Yarn and to use dist as the subdirectory to publish:

package.json

{
	"name": "superb-package",
	"np": {
		"yarn": false,
		"contents": "dist"
	}
}

.np-config.json

{
	"yarn": false,
	"contents": "dist"
}

.np-config.js or .np-config.cjs

module.exports = {
	yarn: false,
	contents: 'dist'
};

Note: The global config only applies when using the global np binary, and is never inherited when using a local binary.

Tips

npm hooks

You can use any of the test/version/publish related npm lifecycle hooks in your package.json to add extra behavior.

For example, here we build the documentation before tagging the release:

{
	"name": "my-awesome-package",
	"scripts": {
		"version": "./build-docs && git add docs"
	}
}

Release script

You can also add np to a custom script in package.json. This can be useful if you want all maintainers of a package to release the same way (Not forgetting to push Git tags, for example). However, you can't use publish as name of your script because it's an npm defined lifecycle hook.

{
	"name": "my-awesome-package",
	"scripts": {
		"release": "np"
	},
	"devDependencies": {
		"np": "*"
	}
}

User-defined tests

If you want to run a user-defined test script before publishing instead of the normal npm test or yarn test, you can use --test-script flag or the testScript config. This can be useful when your normal test script is running with a --watch flag or in case you want to run some specific tests (maybe on the packaged files) before publishing.

For example, np --test-script=publish-test would run the publish-test script instead of the default test.

{
	"name": "my-awesome-package",
	"scripts": {
		"test": "ava --watch",
		"publish-test": "ava"
	},
	"devDependencies": {
		"np": "*"
	}
}

Signed Git tag

Set the sign-git-tag npm config to have the Git tag signed:

$ npm config set sign-git-tag true

Or set the version-sign-git-tag Yarn config:

$ yarn config set version-sign-git-tag true

Private packages

You can use np for packages that aren't publicly published to npm (perhaps installed from a private git repo).

Set "private": true in your package.json and the publishing step will be skipped. All other steps including versioning and pushing tags will still be completed.

Public scoped packages

To publish scoped packages to the public registry, you need to set the access level to public. You can do that by adding the following to your package.json:

"publishConfig": {
	"access": "public"
}

Private Org-scoped packages

To publish a private Org-scoped package, you need to set the access level to restricted. You can do that by adding the following to your package.json:

"publishConfig": {
	"access": "restricted"
}

Publish to a custom registry

Set the registry option in package.json to the URL of your registry:

"publishConfig": {
	"registry": "https://my-internal-registry.local"
}

Publish with a CI

If you use a Continuous Integration server to publish your tagged commits, use the --no-publish flag to skip the publishing step of np.

Publish to gh-pages

To publish to gh-pages (or any other branch that serves your static assets), install branchsite, an np-like CLI tool aimed to complement np, and create an npm "post" hook that runs after np.

$ npm install --save-dev branchsite
"scripts": {
	"deploy": "np",
	"postdeploy": "bs"
}

Initial version

For new packages, start the version field in package.json at 0.0.0 and let np bump it to 1.0.0 or 0.1.0 when publishing.

Release an update to an old major version

To release a minor/patch version for an old major version, create a branch from the major version's git tag and run np:

$ git checkout -b fix-old-bug v1.0.0 # Where 1.0.0 is the previous major version
# Create some commits…
$ git push --set-upstream origin HEAD
$ np patch --any-branch --tag=v1

The prerequisite step runs forever on macOS

If you're using macOS Sierra 10.12.2 or later, your SSH key passphrase is no longer stored into the keychain by default. This may cause the prerequisite step to run forever because it prompts for your passphrase in the background. To fix this, add the following lines to your ~/.ssh/config and run a simple Git command like git fetch.

Host *
 AddKeysToAgent yes
 UseKeychain yes

If you're running into other issues when using SSH, please consult GitHub's support article.

Ignore strategy

The ignore strategy, either maintained in the files-property in package.json or in .npmignore, is meant to help reduce the package size. To avoid broken packages caused by essential files being accidentally ignored, np prints out all the new and unpublished files added to Git. Test files and other common files that are never published are not considered. np assumes either a standard directory layout or a customized layout represented in the directories property in package.json.

FAQ

I get an error when publishing my package through Yarn

If you get an error like this…

❯ Prerequisite check
✔ Ping npm registry
✔ Check npm version
✔ Check yarn version
✖ Verify user is authenticated

npm ERR! code E403
npm ERR! 403 Forbidden - GET https://registry.yarnpkg.com/-/package/my-awesome-package/collaborators?format=cli - Forbidden

…please check whether the command npm access ls-collaborators my-awesome-package succeeds. If it doesn't, Yarn has overwritten your registry URL. To fix this, add the correct registry URL to package.json:

"publishConfig": {
	"registry": "https://registry.npmjs.org"
}

Maintainers

Comments
  • Package publishing partially fails when running tasks

    Package publishing partially fails when running tasks

    Hi!

    Love this tool. It's been giving me some weird results recently. I tried publishing a brand new version of a scoped package:

    image

    After running, it looked like it had succeeded, even though it sat frozen on the version published message. After some seconds, the errors appeared and the application finished. The package was not published to npm.

    Here is the package.json that was used.

    The tail end of the execution:

    image

    Versions:

    $ node --version && npm --version
    v8.7.0
    5.4.2
    
    opened by perry-mitchell 48
  • Add interactive UI

    Add interactive UI

    This PR adds a interactive ui when np runs without arguments as suggested in #52.

    features:

    • choose increment type (e.g. patch) or specify own version (e.g. 0.1.3)
    • choose NPM dist-tag for pre-releases (except packages with "private": true)
      • user can choose from a list of already existing tags for this package or
      • specifiy a custom tag except latest
    • show info about which version you're going from and to.
    • user have to confirm the release to prevent accidental publishing of wrong versions

    Edit(sindresorhus):

    You can install this PR with: $ npm i -g 'zinserjan/np#interactive-ui' and run it with $ np.

    screen shot 2016-10-11 at 03 03 21
    opened by zinserjan 33
  • Use Yarn when available

    Use Yarn when available

    This PR adds yarn as the default installer, and will fallback to npm when yarn is not installed.

    Also adds an opt-out flag (--no-yarn) to override the behavior.

    Since yarn's preinstall and postinstall issues are solved I believe is safe to add this option.

    Fixes #98

    opened by gillchristian 32
  • Ensure GitHub status checks have passed

    Ensure GitHub status checks have passed

    Ensures GitHub status checks have passed using the Statuses API. Resolves #53.

    This is a really quick implementation to gather feedback early. Some things that are missing or need to be discussed:

    • [x] Skip if there’s no repository URL
    • [x] Skip if the repository is not hosted on GitHub
    • [x] Link to failed status checks (using terminal-link)
    • [x] Handle unpushed commits (see https://github.com/sindresorhus/np/pull/289#issuecomment-414195879)
    • [x] Time out request loop
    • [x] Handle API rate limits
    • [x] Provide feedback while looping
    • [x] Skip GitHub status checks (--no-checks)
    • [x] Reword task title (I don’t really like the sound of “Check … checks”)
    • [x] Move task to be a top-level task
    opened by sonicdoe 25
  • Use `yarn publish` for Yarn

    Use `yarn publish` for Yarn

    refs #216, #203, etc

    I've genuinely been pulling my hair out with np for the last 3 days. I've done my absolute best to try to contribute a fix because I love this tool, but I'm utterly lost 😭

    I've tried to fix the npm publish, but I just don't understand how exec/execa/observable are all related.

    Instead I've tried to add yarn publish support, but although the publish happens, the flow of control never returns back to listr it seems, so it sits and hangs forever, and never gets as far as pushing the tags. I am at a loss for how to debug.

    This PR includes that attempt.

    Can someone who understands listr, execa, etc etc take a look and see if they can find an easy fix?

    I'd also love to know as well:

    • what does the streamToObservable wrapper in index.js & observableFromPublish code in publish.js achieve?
    • how come in publish.js execa is used directly, although everywhere else it is execa.stdout

    If someone can point me at some related reading that would make this make sense I'd be grateful!

    opened by ErisDS 25
  • Ensure no extraneous files get published

    Ensure no extraneous files get published

    Issuehunt badges

    I think it will be nice if, before publishing, np checked whether the package has either:

    • set a files field in package.json
    • a .npmignore file

    This would help publishers make cleaner packages and reduce the bandwidth used when installing the resulting package.

    I would actually advocate towards making sure there is a files field, as it's better IMO than using .npmignore, but that's just my opinion. A well designed .npmignore has the same result.


    IssueHunt Summary

    bunysae bunysae has been rewarded.

    Backers (Total: $60.00)

    Submitted pull Requests


    Tips

    enhancement help wanted :gift: Rewarded on Issuehunt 
    opened by jfmengels 25
  • Network prerequisite checks use custom registry when specified

    Network prerequisite checks use custom registry when specified

    The prerequisite checks are being run against the default registry, but if the package.json specifies a custom registry is should run the checks against it.

    I'm using Verdaccio which doesn't let you set collaborators. However the existing error catcher for npm access ls-collaborators seems like it will handle issues that arise from custom registries that are missing this feature. (When I run the command by hand I get a 404, but I don't know about other custom registries).

    opened by p-jackson 21
  • Rollback git operations on np fail

    Rollback git operations on np fail

    Issuehunt badges

    Last night my npm login was misconfigured, ran np.

    np did everything except publish. Including adding git tags, git commit v{n+1}, git push origin.

    Had to rollback manully before trying np again.

    IssueHunt Summary

    itaisteinherz itaisteinherz has been rewarded.

    Sponsors (Total: $30.00)

    Tips

    enhancement help wanted :gift: Rewarded on Issuehunt 
    opened by zikaari 19
  • Add `--release-draft-only` flag

    Add `--release-draft-only` flag

    Closes #478

    This is my proposal for the issue above.

    • It adds the argument --release-draft-only to the CLI
    • It adds the function previousTagOrFirstCommit() to get the tag which is before the one which we would have usually used
    • Error if no tag found, which means the package hasn't been published yet
    • Unreleased commits are ignored

    Example of use case:

    • First commit
    • Some changes
    • 1.0.0 (tag = v1.0.0)
    • More changes
    • Bug fix
    • 1.0.1 (tag = v1.0.1) (published on NPM, no release on GitHub)
    • One last fix (unreleased)

    I do np --release-draft-only.

    Behind the scenes, the np command is called with version 1.0.1 "in mind".

    The function previousTagOrFirstCommit() returns 1.0.0 so that we can get the commit log from this revision.

    The commit which bumps the version to the latest (named "1.0.1") is removed from the history as well as the unreleased commit(s).

    No other task is executed. The release draft helper runs right after the first prompt.

    opened by Drarig29 18
  • Show files added since the last release and not part of the package

    Show files added since the last release and not part of the package

    According to your issue-comment, i implemented a check for files, which were added since the last release and which are not part of file-attribute in package.json or which are ignored by .npmignore.

    A unit-test for the new function is implemented mocking the the git command and the package-directory. Therefore i added the directory test/fixtures.

    Fixes #103


    IssueHunt Summary

    Referenced issues

    This pull request has been submitted to:


    IssueHunt has been backed by the following sponsors. Become a sponsor

    opened by bunysae 18
  • Gracefully handle branch not having an upstream

    Gracefully handle branch not having an upstream

    Issuehunt badges

    ~/dev/boxen tmp
    ❯ np patch --any-branch              
     ✔ Prerequisite check
     ❯ Git
       ✔ Check local working tree
       ✖ Check remote history
       Cleanup
       Installing dependencies
       Running tests
       Bumping version
       Publishing package
       Pushing tags
    
    Command failed: git rev-list --count --left-only @{u}...HEAD
    fatal: no upstream configured for branch 'tmp'
    

    The above should not fail. The task should just be marked as skipped.

    itaisteinherz earned $60.00 by resolving this issue!

    enhancement help wanted :gift: Rewarded on Issuehunt 
    opened by sindresorhus 18
  • Tag flag is not working

    Tag flag is not working

    Description

    I'm running yarn np with the --tag flag, but it does not impact on the tag that is pushed to the repository.

    Does not matter if I run with patch, prepatch, prerelase, etc. I've tried with all tags. Also, I've tried with npm, but I can't get it.

    Steps to reproduce

    1. yarn np prerelease --tag=rc

    Expected behavior

    I expect to see something like: v1.0.1-rc.0

    I see: v.1.0.1-0

    Environment

    np - 7.6.2 Node.js - 19.1.0 npm - 9.1.2 yarn - 1.22.19 Git - 2.37.1 OS - macos ventura 13.0.1

    opened by nicolascavallin 0
  • Add support for pnpm (don't merge)

    Add support for pnpm (don't merge)

    This PR adds support for the pnpm package manager, which has been steadily growing in popularity.

    The maintainers don't want to add support for every package manager (see https://github.com/sindresorhus/np/issues/251#issuecomment-400717095), which is totally understandable — and therefore I don't expect this PR to be merged.

    I'm just opening the PR here for visibility and to have a chance to gather feedback.

    Note that I haven't added appropriate top-level unit tests for pnpm yet.

    cc @zkochan depending on what the np maintainers decide, would it possibly make sense to move this fork under the pnpm organization? I haven't published it to NPM yet.

    opened by transitive-bullshit 2
  • Publish fail using

    Publish fail using "np --any-branch"

    Description

    To publish using the command npm run release leads to log below:

    Prerequisite check ✖ Ping npm registry

    ┌───────────────────────────────────────────────────┐ │ np update check failed │ │ Try running with sudo or get access │ │ to the local update config store via │ │ sudo chown -R $USER:$(id -gn $USER) /root/.config │ └───────────────────────────────────────────────────┘

    Environment

    np - "^7.6.2" Node.js - ">=16.0.0" npm - ">=6.9.0" OS - Ubuntu 20.04.5 LTS

    opened by brunolnetto 0
  • NIT: warning np@7.6.2: The engine

    NIT: warning [email protected]: The engine "git" appears to be invalid.

    Description

    This is a nit, not at all breaking functionality bug. Just thought I would note it.

    The warning warning [email protected]: The engine "git" appears to be invalid. is displayed when installing np.

    I think listing git version in the engines field of package.json is a clever and appropriate place for the listing. Would be nice if there was not a warning for it. Could be cool to see it tacked on to an upstream issue on npm.

    Steps to reproduce

    1. yarn add --dev np

    Expected behavior

    No warning

    Environment

    np - ^7.6.2 Node.js - v16.13.0 npm - 8.1.0 Git - 2.25.1 OS - Ubuntu 20.04.5 LTS (WSL2)

    opened by meandavejustice 0
  • np is including irrelevant yarn.lock files

    np is including irrelevant yarn.lock files

    Description

    I have multiple yarn.lock files in my library: one for the library and one for an example application. I added the example application directory into .npmignore, but np is still trying to include it.

    This is the output even though .npmignore specifically has example/:

    The following new files will be published the first time:
    - example/yarn.lock
    - rollup.config.js
    - yarn.lock
    

    Steps to reproduce

    1. Have a yarn.lock file in the root
    2. Have a yarn.lock file in example/
    3. Add example/ to .npmignore
    4. Run np

    Expected behavior

    I expect it to respect .npmignore file.

    Environment

    np - 7.6.2 Node.js - v16.13.0 npm - 8.1.4 Git - 2.32.1 OS - macOS 12.5

    opened by tansanDOTeth 0
  • Newly publishing a public scoped package does not include the `--access public` flag

    Newly publishing a public scoped package does not include the `--access public` flag

    Description

    When publishing a new scoped package I am prompted that the package has not been published before and asked if I want to publish it publically. I enter "yes" but then get an error indicating that I need a paid NPM account to publish a private scoped package.

    It appears that np is running npm publish --otp xxxxxx with no --access public flag. Looking at npm help publish, I see the following:

    [--access <public|restricted>]: Tells the registry whether this package should be published as public or restricted. Only applies to scoped packages, which default to restricted. If you don't have a paid account, you must publish with --access public to publish scoped packages.

    It appears that --access defaults to restricted, and so since np doesn't specify --access public, even when the user selects yes to publish publically, npm attempts to publish a private scoped module and the publish fails.

    Steps to reproduce

    1. Create an unpublished scoped package
    2. Attempt to publish with np, select "yes" when asked to publish publically
    3. Observe failure to publish from npm

    Expected behavior

    When selecting "yes" for publishing publically the --access public flag should be set so that the publish succeeds.

    Environment

    np - 7.6.2 Node.js - 18.4.0 npm - 8.12.1 Git - 2.34.1 OS - macOS 12.1

    opened by knpwrs 1
Releases(v7.6.3)
  • v7.6.3(Dec 27, 2022)

  • v7.6.2(Jun 22, 2022)

  • v7.6.1(Mar 19, 2022)

    • Fix error "glob pattern string required" (#616) 9cff6da
    • Fix "pattern is too long" error when running np (#633) 20117a4

    https://github.com/sindresorhus/np/compare/v7.6.0...v7.6.1

    Source code(tar.gz)
    Source code(zip)
  • v7.6.0(Nov 19, 2021)

    • Fix files prompt when no new or unpublished files can be found (#625) 5d2377f
    • Fix --message flag help description (#623) dddd07c

    https://github.com/sindresorhus/np/compare/v7.5.0...v7.6.0

    Source code(tar.gz)
    Source code(zip)
  • v7.5.0(Apr 25, 2021)

  • v7.4.0(Feb 12, 2021)

    • Add support for custom commit message (#597) 65a674e
    • Fix --release-draft-only flag (#594) add5bd9

    https://github.com/sindresorhus/np/compare/v7.3.0...v7.4.0

    Source code(tar.gz)
    Source code(zip)
  • v7.3.0(Feb 6, 2021)

  • v7.2.0(Dec 31, 2020)

    • Check if yarn.lock is ignored before throwing error (#582) c76987a
    • Make commit log relative to release branch (#580) 8f812e0
    • Fix confusing prompt with empty file list (#589) ca3d830

    https://github.com/sindresorhus/np/compare/v7.1.0...v7.2.0

    Source code(tar.gz)
    Source code(zip)
  • v7.1.0(Dec 27, 2020)

    • Add --release-draft-only flag (#578) 316bed2
    • Handle long path names in the "show files added since last release" feature (#579) 3466903
    • Show prompt only in interactive mode (#583) 4ae26d9

    https://github.com/sindresorhus/np/compare/v7.0.0...v7.1.0

    Source code(tar.gz)
    Source code(zip)
  • v7.0.0(Oct 29, 2020)

    Breaking

    • Prefer local install (#572) 0cff2b4 If you run the global np command, it will now defer to the local np if any. This is important when you use config and other things which might change across np versions. This is unlikely to be a breaking change for most people, but it's a major version to me safe.

    Improvements

    • Show files added since the last release and not part of the package (#456) 08a2c06

    Fixes

    • Fix error when Yarn cannot find test script (#567) c77e191

    https://github.com/sindresorhus/np/compare/v6.5.0...v7.0.0

    Source code(tar.gz)
    Source code(zip)
  • v6.5.0(Aug 29, 2020)

    • Create release draft even when pushing to protected branches failed (#560) 3fc1e77

    https://github.com/sindresorhus/np/compare/v6.4.0...v6.5.0

    Source code(tar.gz)
    Source code(zip)
  • v6.4.0(Aug 9, 2020)

    • Add --test-script flag to run custom tests before publish (#557) 0c46a2f
    • Add support for --no-2fa flag (#559) 0638d27
    • Add support for specifying release branch (#558) b8b1976

    https://github.com/sindresorhus/np/compare/v6.3.2...v6.4.0

    Source code(tar.gz)
    Source code(zip)
  • v6.3.2(Jul 11, 2020)

  • v6.3.1(Jul 7, 2020)

  • v6.3.0(Jul 5, 2020)

    • Fix specifying a custom version via UI (#546) 6b68244
    • Respect preId in .npmrc for release tags (#547) aebd8ab

    https://github.com/sindresorhus/np/compare/v6.2.5...v6.3.0

    Source code(tar.gz)
    Source code(zip)
  • v6.2.5(Jun 27, 2020)

  • v6.2.4(Jun 7, 2020)

    • Fix releaseDraft setting not working when set from config not CLI (#540) 81b0001

    https://github.com/sindresorhus/np/compare/v6.2.3...v6.2.4

    Source code(tar.gz)
    Source code(zip)
  • v6.2.3(Apr 27, 2020)

  • v6.2.2(Apr 23, 2020)

  • v6.2.1(Apr 12, 2020)

    • Fix scoped repo prompt showing even if package has already been published (#524) 1cf7d78
    • Correctly detect if np is not run in a package (#512) b5a7dcf

    https://github.com/sindresorhus/np/compare/v6.2.0...v6.2.1

    Source code(tar.gz)
    Source code(zip)
  • v6.2.0(Feb 26, 2020)

    • Allow explicit private publish to prevent public publish prompt (#497) 08b52a2
    • Add preview mode (#399) 5f52e81

    https://github.com/sindresorhus/np/compare/v6.1.0...v6.2.0

    Source code(tar.gz)
    Source code(zip)
  • v6.1.0(Feb 17, 2020)

    • Auto-submit 2FA (#493) d589d46
    • Escape HTML in release note commit messages (#500) 05bb791

    https://github.com/sindresorhus/np/compare/v6.0.0...v6.1.0

    Source code(tar.gz)
    Source code(zip)
  • v6.0.0(Feb 7, 2020)

    Breaking

    • Require Node.js 10 818ff4b

    Enhancements

    • Show registry URL before publishing (#485) 6bf85df
    • Allow publishing if availability check fails (#490) ccdb8a5
    • Publish non-private subdirectories when root is private (#483) 607e5c1
    • Enforce matching engines on npm install (#481) b14dbc9

    Fixes

    • Fix checking collaborators when publishing to external registry (#491) 4ad4146

    Docs

    • Document support for GitHub Packages 91ba1ef

    https://github.com/sindresorhus/np/compare/v5.2.1...v6.0.0

    Source code(tar.gz)
    Source code(zip)
  • v5.2.1(Nov 30, 2019)

    • Don't check "files" in package.json or .npmignore if private package or not publishing (#472) 000ddcf
    • Don't ask for tag if --no-publish (#473) 23524b5
    • Check package name availability in custom registry (#429) 8360cb6
    • Fix incorrectly showing "Aborted!" message on successful publish (#471) e53cbe8

    https://github.com/sindresorhus/np/compare/v5.1.3...v5.2.1

    Source code(tar.gz)
    Source code(zip)
  • v5.1.3(Nov 8, 2019)

  • v5.1.2(Oct 28, 2019)

  • v5.1.1(Oct 10, 2019)

  • v5.1.0(Sep 13, 2019)

    Enhancements

    • Add tests option (#423) bea57db
    • Warn if no files field in package.json or .npmignore file is present (#411) c790d37

    Fixes

    • Fix pushing to uncommon Git hosts (#441) c0dc3a3
    • Use correct version when creating release draft (#435) ff5e21a
    • Avoid enabling 2FA for packages published to external registries (#433) ab35fb9
    • Do not show the rollback message when the test step fails (#443) 66bedff

    https://github.com/sindresorhus/np/compare/v5.0.3...v5.1.0

    Source code(tar.gz)
    Source code(zip)
  • v5.0.3(Jun 6, 2019)

  • v5.0.2(May 18, 2019)

    • Update cosmiconfig to 5.2.1 (#408) be196de
    • Avoid skipping push if branch name isn't "master" (#397) 15176f4

    https://github.com/sindresorhus/np/compare/v5.0.1...v5.0.2

    Source code(tar.gz)
    Source code(zip)
Owner
Sindre Sorhus
Full-Time Open-Sourcerer. Wants more empathy & kindness in open source. Focuses on Swift & JavaScript. Makes macOS apps, CLI tools, npm packages. Likes unicorns
Sindre Sorhus
We need a better Markdown previewer.

We need a better Markdown previewer. pen is a Markdown previewer written in JavaScript, aiming to just work. There are literally tons of Markdown prev

null 327 Dec 30, 2022
Check NPM package licenses

NPM License Checker As of v17.0.0 the failOn and onlyAllow arguments take semicolons as delimeters instead of commas. Some license names contain comma

Dav Glass 1.5k Dec 29, 2022
:eyeglasses: Node.js module that tells you when your package npm dependencies are out of date.

Node.js module that tells you when your package npm dependencies are out of date. Getting Started Install Node.js. Install david: cd /your/project/dir

Alan Shaw 953 Dec 25, 2022
Open the npm page, Yarn page, or GitHub repo of a package

npm-home Open the npm page, Yarn page, or GitHub repo of a package Install $ npm install --global npm-home Usage $ npm-home --help Usage $ npm

Sindre Sorhus 180 Dec 18, 2022
Check whether a package or organization name is available on npm

npm-name Check whether a package or organization name is available on npm Install $ npm install npm-name Usage import npmName from 'npm-name'; // Ch

Sindre Sorhus 157 Nov 13, 2022
Uses marked-terminal to render a README.md for any npm module in the terminal.

modhelp Uses marked-terminal to render a README.md for any npm module in the terminal. Now with built-in pager! Page up/down, arrow keys to scroll lin

Jason Livesay 23 Feb 8, 2022
Package manager faster than NPM

Pine Script holder that runs faster than NPM and yarn Pine is a npm and yarn run like module, that allows you to organize your scripts and run them FA

Darkling 4 Jul 10, 2021
Add a hungry turtle to your terminal and feed it every time you mistype 'npm' as 'nom'

Nom Does this ever happen to you? You happily code away on a project, navigating the command line like a pro, testing, error logging, installing packa

Meike Hankewicz 5 Apr 26, 2022
An npm module to run Snowflake in a headless browser to help censored users connect to the Tor network.

snowflake-cli An npm module to run Snowflake in a headless browser to help censored users connect to the Tor network. Note: depending on your environm

yan 8 Mar 24, 2022
Easily publish notes to the web This plugin integrates with obsius.site to publish markdown notes on the web.

Obsius Publish Easily publish notes to the web This plugin integrates with obsius.site to publish markdown notes on the web. Limitations The type of c

Jon Grythe Stødle 66 Dec 20, 2022
Micro.publish is an Obsidian plugin to publish notes directly to Micro.blog, written in TypeScript

Micro.publish Micro.publish is a community maintained plugin for Obsidian to publish notes to a Micro.blog blog. Installing This plugin will be availa

Otavio Cordeiro 14 Dec 9, 2022
npm i uuid, npm i nodemon, npm i commander

goit-nodejs-hw-01 Получаем и выводим весь список контактов в виде таблицы (console.table) node index.js --action list Получаем контакт по id node inde

Oksana Banshchykova 3 Jul 5, 2022
☁️ Publish your npm package to a GitHub repository branch

git-publish Publish your npm package to a Git branch. Support this project by ⭐️ starring and sharing it. Follow me to see what other cool projects I'

hiroki osame 28 Oct 21, 2022
🔗 A better npm link

npx link A safer version of npm link. Why is npm link unsafe? Read the blog post. Features ?? Link dependencies without removing previous links ?? Onl

hiroki osame 85 Dec 24, 2022
➤_ A better way to organize your npm scripts

➤_ Better Scripts A better way to organize your npm scripts See better-scripts.vercel.app → Installation Usage Basic setup Add script description Scri

Yoki 49 Dec 29, 2022
Semantic Release plugin to create and publish NuGet packages.

semantic-release-nuget semantic-release plugin to create and publish a NuGet package. Step Description verifyConditions Verify the presence of the NUG

DroidSolutions 6 Jan 2, 2023
This React-Based WebPage allows the client/user system to create their own blog, where users can publish their own opinions.

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

Gauri Bhand 4 Jul 28, 2022
Like Obsidian Publish but for self-hosting. Plugin integrations for dataview, admonition, and more.

Obsidian Export Obsidian Publish is great but lacks support for many of the plugins we Obsidian addicts have grown accustomed to — in particular Datav

null 12 Nov 28, 2022
Strapi V4 Plugin to schedule publish and depublish actions

Strapi plugin scheduler This plugin allows you to publish and depublish collection types in the future. There are a couple of steps necessary to get t

Webbio 12 Nov 24, 2022
🚀 A GitHub action to publish a new release of the repository

Create a JavaScript Action using TypeScript Use this template to bootstrap the creation of a TypeScript action. ?? This template includes compilation

Clicampo 3 Nov 1, 2022