1 ---
2 title: npm-shrinkwrap.json
3 section: 5
4 description: A publishable lockfile
5 github_repo: npm/cli
6 github_branch: release/v8
7 github_path: docs/lib/content/configuring-npm/npm-shrinkwrap-json.md
8 redirect_from:
9 - /cli-documentation/v8/configuring-npm/npm-shrinkwrap-json
10 - /cli-documentation/v8/configuring-npm/npm-shrinkwrap.json
11 - /cli-documentation/v8/files/npm-shrinkwrap-json
12 - /cli-documentation/v8/files/npm-shrinkwrap.json
13 - /cli/v8/configuring-npm/npm-shrinkwrap.json
14 - /cli/v8/files/npm-shrinkwrap-json
15 - /cli/v8/files/npm-shrinkwrap.json
16 ---
17
18 ### Description
19
20 `npm-shrinkwrap.json` is a file created by [`npm shrinkwrap`](/cli/v8/commands/npm-shrinkwrap). It is identical to `package-lock.json`, with one major caveat: Unlike `package-lock.json`, `npm-shrinkwrap.json` may be included when publishing a package.
21
22 The recommended use-case for `npm-shrinkwrap.json` is applications deployed through the publishing process on the registry: for example, daemons and command-line tools intended as global installs or `devDependencies`. It's strongly discouraged for library authors to publish this file, since that would prevent end users from having control over transitive dependency updates.
23
24 If both `package-lock.json` and `npm-shrinkwrap.json` are present in a package root, `npm-shrinkwrap.json` will be preferred over the `package-lock.json` file.
25
26 For full details and description of the `npm-shrinkwrap.json` file format, refer to the manual page for [package-lock.json](/cli/v8/configuring-npm/package-lock-json).
27
28 ### See also
29
30 - [npm shrinkwrap](/cli/v8/commands/npm-shrinkwrap)
31 - [package-lock.json](/cli/v8/configuring-npm/package-lock-json)
32 - [package.json](/cli/v8/configuring-npm/package-json)
33 - [npm install](/cli/v8/commands/npm-install)