Skip to content

Commit

Permalink
chore(docs): update unpublish docs with both commands, removing polic…
Browse files Browse the repository at this point in the history
…y info from cli docs, and added reference to unpublish policy docs

Co-Authored-By: Michael 'afrolion' Perrotte <mike@npmjs.com>

PR-URL: #730
Credit: @nomadtechie
Close: #730
Reviewed-by: @darcyclarke
  • Loading branch information
Amal Hussein authored and darcyclarke committed Mar 3, 2020
1 parent 3b9c135 commit f9248c0
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 17 deletions.
26 changes: 11 additions & 15 deletions docs/content/cli-commands/npm-unpublish.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,21 @@ description: Remove a package from the registry

### Synopsis

#### Unpublishing a single version of a package

```bash
npm unpublish [<@scope>/]<pkg>[@<version>]
npm unpublish [<@scope>/]<pkg>@<version>
```

### Warning
#### Unpublishing an entire package

**It is generally considered bad behavior to remove versions of a library
that others are depending on!**
```bash
npm unpublish [<@scope>/]<pkg> --force
```

Consider using the `deprecate` command
instead, if your intent is to encourage users to upgrade.
### Warning

There is plenty of room on the registry.
Consider using the `deprecate` command instead, if your intent is to encourage users to upgrade, or if you no longer want to maintain a package.

### Description

Expand All @@ -34,16 +36,10 @@ the root package entry is removed from the registry entirely.

Even if a package version is unpublished, that specific name and
version combination can never be reused. In order to publish the
package again, a new version number must be used. Additionally,
new versions of packages with every version unpublished may not
be republished until 24 hours have passed.
package again, a new version number must be used. If you unpublish the entire package, you may not publish any new versions of that package until 24 hours have passed.

With the default registry (`registry.npmjs.org`), unpublish is
only allowed with versions published in the last 72 hours. If you
are trying to unpublish a version published longer ago than that,
contact support@npmjs.com.
To learn more about how unpublish is treated on the npm registry, see our <a href="https://www.npmjs.com/policies/unpublish" target="_blank" rel="noopener noreferrer"> unpublish policies</a>.

The scope is optional and follows the usual rules for [`scope`](/using-npm/scope).

### See Also

Expand Down
8 changes: 6 additions & 2 deletions lib/unpublish.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,11 @@ const readJson = BB.promisify(require('read-package-json'))
const usage = require('./utils/usage.js')
const whoami = BB.promisify(require('./whoami.js'))

unpublish.usage = usage('npm unpublish [<@scope>/]<pkg>[@<version>]')
unpublish.usage = usage(
'unpublish',
'\nnpm unpublish [<@scope>/]<pkg>@<version>' +
'\nnpm unpublish [<@scope>/]<pkg> --force'
)

function UsageError () {
throw Object.assign(new Error(`Usage: ${unpublish.usage}`), {
Expand Down Expand Up @@ -75,7 +79,7 @@ function unpublish (args, cb) {
'Refusing to delete entire project.\n' +
'Run with --force to do this.\n' +
unpublish.usage
), {code: 'EUSAGE'})
), { code: 'EUSAGE' })
}
if (!spec || path.resolve(spec.name) === npm.localPrefix) {
// if there's a package.json in the current folder, then
Expand Down

0 comments on commit f9248c0

Please sign in to comment.