Skip to content
Closed
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 21 additions & 22 deletions docs/content/commands/npm-uninstall.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ description: Remove a package
### Synopsis

```bash
npm uninstall [<@scope>/]<pkg>[@<version>]... [-S|--save|-D|--save-dev|-O|--save-optional|--no-save]
npm uninstall [<@scope>/]<pkg>[@<version>]... [--no-save]

aliases: remove, rm, r, un, unlink
```
Expand All @@ -17,40 +17,39 @@ aliases: remove, rm, r, un, unlink
This uninstalls a package, completely removing everything npm installed
on its behalf.

Example:
It also removes the package from the `dependencies`, `devDependencies`,
`optionalDependencies`, and `peerDependencies` objects in your
`package.json`.

```bash
npm uninstall sax
```
Futher, if you have an `npm-shrinkwrap.json` or `package-lock.json`, npm
will update those files as well.

`npm uninstall` takes one optional flag, `--no-save` which will tell npm
not to remove the package from your `package.json`,
`npm-shrinkwrap.json`, or `package-lock.json` files

In global mode (ie, with `-g` or `--global` appended to the command),
it uninstalls the current package context as a global package.
`--no-save` is ignored in this case.

`npm uninstall` takes 3 exclusive, optional flags which save or update
the package version in your main package.json:

* `-S, --save`: Package will be removed from your `dependencies`.

* `-D, --save-dev`: Package will be removed from your `devDependencies`.

* `-O, --save-optional`: Package will be removed from your `optionalDependencies`.
Scope is optional and follows the usual rules for [`scope`](/using-npm/scope).

* `--no-save`: Package will not be removed from your `package.json` file.
### Examples

Further, if you have an `npm-shrinkwrap.json` then it will be updated as
well.
```bash
npm uninstall sax
```

Scope is optional and follows the usual rules for [`scope`](/using-npm/scope).
sax will no longer be in your `package.json`, `npm-shrinkwrap.json`, or
`package-lock.json` files.

Examples:
```bash
npm uninstall sax --save
npm uninstall @myorg/privatepackage --save
npm uninstall node-tap --save-dev
npm uninstall dtrace-provider --save-optional
npm uninstall lodash --no-save
```

lodash will not be removed fromy your `package.json`,
`npm-shrinkwrap.json`, or `package-lock.json` files.

### See Also

* [npm prune](/commands/npm-prune)
Expand Down
2 changes: 1 addition & 1 deletion lib/uninstall.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ const completion = require('./utils/completion/installed-shallow.js')

const usage = usageUtil(
'uninstall',
'npm uninstall [<@scope>/]<pkg>[@<version>]... [--save-prod|--save-dev|--save-optional] [--no-save]'
'npm uninstall [<@scope>/]<pkg>[@<version>]... [--no-save]'
)

const cmd = (args, cb) => rm(args).then(() => cb()).catch(cb)
Expand Down