diff --git a/docs/content/commands/npm-uninstall.md b/docs/content/commands/npm-uninstall.md index fe3c871138c19..258431cbd9f94 100644 --- a/docs/content/commands/npm-uninstall.md +++ b/docs/content/commands/npm-uninstall.md @@ -7,7 +7,7 @@ description: Remove a package ### Synopsis ```bash -npm uninstall [<@scope>/][@]... [-S|--save|-D|--save-dev|-O|--save-optional|--no-save] +npm uninstall [<@scope>/][@]... [-S|--save|--no-save] aliases: remove, rm, r, un, unlink ``` @@ -17,40 +17,43 @@ 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. -In global mode (ie, with `-g` or `--global` appended to the command), -it uninstalls the current package context as a global package. - -`npm uninstall` takes 3 exclusive, optional flags which save or update -the package version in your main package.json: +`--no-save` will tell npm not to remove the package from your +`package.json`, `npm-shrinkwrap.json`, or `package-lock.json` files. -* `-S, --save`: Package will be removed from your `dependencies`. +`--save` or `-S` will tell npm to remove the package from your +`package.json`, `npm-shrinkwrap.json`, and `package-lock.json` files. +This is the default, but you may need to use this if you have for +instance `save=false` in your `npmrc` file -* `-D, --save-dev`: Package will be removed from your `devDependencies`. +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. -* `-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 from your `package.json`, +`npm-shrinkwrap.json`, or `package-lock.json` files. + ### See Also * [npm prune](/commands/npm-prune) diff --git a/lib/uninstall.js b/lib/uninstall.js index 83a0b009699eb..15995c0b3cc94 100644 --- a/lib/uninstall.js +++ b/lib/uninstall.js @@ -9,7 +9,7 @@ const completion = require('./utils/completion/installed-shallow.js') const usage = usageUtil( 'uninstall', - 'npm uninstall [<@scope>/][@]... [--save-prod|--save-dev|--save-optional] [--no-save]' + 'npm uninstall [<@scope>/][@]... [-S|--save|--no-save]' ) const cmd = (args, cb) => rm(args).then(() => cb()).catch(cb)