## NAME

`npm-cache` - Manipulates packages cache

## SYNOPSIS

    npm cache add <tarball file>
    npm cache add <folder>
    npm cache add <tarball url>
    npm cache add <name>@<version>

    npm cache ls [<path>]

    npm cache clean [<path>]

## DESCRIPTION

Used to add, list, or clear the npm cache folder.

add

  Add the specified package to the local cache. This command is primarily intended to be used internally by npm, but it can provide a way to add data to the local installation cache explicitly.

ls

  Show the data in the cache. Argument is a path to show in the cache folder. Works a bit like the `find` program, but limited by the `depth` config.

clean

  Delete data out of the cache folder. If an argument is provided, then it specifies a subpath to delete. If no argument is provided, then the entire cache is cleared.

## DETAILS

npm stores cache data in `$HOME/.npm`. For each package that is added to the cache, three pieces of information are stored in `{cache}/{name}/{version}`:

.../package/
  A folder containing the package contents as they appear in the tarball.
.../package.json
  The package.json file, as npm sees it, with overlays applied and a _id attribute.
.../package.tgz
  The tarball for that version.

Additionally, whenever a registry request is made, a `.cache.json` file is placed at the corresponding URI, to store the ETag and the requested data.

Commands that make non-essential registry requests (such as `search` and `view`, or the completion scripts) generally specify a minimum timeout. If the `.cache.json` file is younger than the specified timeout, then they do not make an HTTP request to the registry.

## CONFIGURATION

### cache

Default: `$HOME/.npm` on Posix, or `$HOME/npm-cache` on Windows.

The root cache folder.

## SEE ALSO

- npm-folders(5)
- npm-config(1)
- npm-config(7)
- npmrc(5)
- npm-install(1)
- npm-publish(1)
- npm-pack(1)