From 6dc4c18a85b1873669d25eaaa21aecab94e178d2 Mon Sep 17 00:00:00 2001 From: npm CLI robot Date: Wed, 7 Jun 2023 15:41:31 +0000 Subject: [PATCH 01/15] CLI documentation update from CI --- content/cli/v9/commands/npm-access.md | 6 + content/cli/v9/commands/npm-adduser.md | 5 + content/cli/v9/commands/npm-audit.md | 18 ++ content/cli/v9/commands/npm-bugs.md | 4 + content/cli/v9/commands/npm-cache.md | 2 + content/cli/v9/commands/npm-ci.md | 30 +- content/cli/v9/commands/npm-config.md | 10 + content/cli/v9/commands/npm-dedupe.md | 24 +- content/cli/v9/commands/npm-deprecate.md | 4 + content/cli/v9/commands/npm-diff.md | 20 ++ content/cli/v9/commands/npm-docs.md | 4 + content/cli/v9/commands/npm-doctor.md | 2 + content/cli/v9/commands/npm-edit.md | 2 + content/cli/v9/commands/npm-exec.md | 3 + content/cli/v9/commands/npm-explain.md | 2 + content/cli/v9/commands/npm-explore.md | 2 + content/cli/v9/commands/npm-find-dupes.md | 22 +- content/cli/v9/commands/npm-fund.md | 8 + content/cli/v9/commands/npm-help-search.md | 2 + content/cli/v9/commands/npm-help.md | 2 + content/cli/v9/commands/npm-hook.md | 4 + content/cli/v9/commands/npm-init.md | 7 + .../cli/v9/commands/npm-install-ci-test.md | 30 +- content/cli/v9/commands/npm-install-test.md | 42 ++- content/cli/v9/commands/npm-install.md | 42 ++- content/cli/v9/commands/npm-link.md | 30 +- content/cli/v9/commands/npm-login.md | 5 + content/cli/v9/commands/npm-logout.md | 3 + content/cli/v9/commands/npm-ls.md | 24 +- content/cli/v9/commands/npm-org.md | 8 + content/cli/v9/commands/npm-outdated.md | 10 + content/cli/v9/commands/npm-owner.md | 4 + content/cli/v9/commands/npm-pack.md | 6 + content/cli/v9/commands/npm-ping.md | 2 + content/cli/v9/commands/npm-pkg.md | 4 + content/cli/v9/commands/npm-prefix.md | 2 + content/cli/v9/commands/npm-profile.md | 8 + content/cli/v9/commands/npm-prune.md | 12 + content/cli/v9/commands/npm-publish.md | 19 ++ content/cli/v9/commands/npm-query.md | 2 + content/cli/v9/commands/npm-rebuild.md | 10 + content/cli/v9/commands/npm-repo.md | 4 + content/cli/v9/commands/npm-restart.md | 4 + content/cli/v9/commands/npm-root.md | 2 + content/cli/v9/commands/npm-run-script.md | 6 + content/cli/v9/commands/npm-search.md | 22 ++ content/cli/v9/commands/npm-star.md | 6 + content/cli/v9/commands/npm-stars.md | 2 + content/cli/v9/commands/npm-start.md | 4 + content/cli/v9/commands/npm-stop.md | 4 + content/cli/v9/commands/npm-team.md | 8 + content/cli/v9/commands/npm-test.md | 4 + content/cli/v9/commands/npm-token.md | 8 + content/cli/v9/commands/npm-uninstall.md | 20 ++ content/cli/v9/commands/npm-unpublish.md | 4 + content/cli/v9/commands/npm-unstar.md | 6 + content/cli/v9/commands/npm-update.md | 30 +- content/cli/v9/commands/npm-version.md | 14 + content/cli/v9/commands/npm-view.md | 2 + content/cli/v9/commands/npm-whoami.md | 2 + content/cli/v9/commands/npm.md | 2 +- content/cli/v9/using-npm/changelog.md | 39 +++ content/cli/v9/using-npm/config.md | 305 +++++++++++++++++- src/theme/nav.yml | 2 +- 64 files changed, 920 insertions(+), 26 deletions(-) diff --git a/content/cli/v9/commands/npm-access.md b/content/cli/v9/commands/npm-access.md index 84c443d9142..9e30f23e883 100644 --- a/content/cli/v9/commands/npm-access.md +++ b/content/cli/v9/commands/npm-access.md @@ -121,6 +121,8 @@ Whether or not to output JSON data, rather than the normal output. Not supported by all npm commands. + + #### `otp` * Default: null @@ -132,6 +134,8 @@ when publishing or changing package permissions with `npm access`. If not set, and a registry response fails with a challenge for a one-time password, npm will prompt on the command line for one. + + #### `registry` * Default: "https://registry.npmjs.org/" @@ -139,6 +143,8 @@ password, npm will prompt on the command line for one. The base URL of the npm registry. + + ### See Also * [`libnpmaccess`](https://npm.im/libnpmaccess) diff --git a/content/cli/v9/commands/npm-adduser.md b/content/cli/v9/commands/npm-adduser.md index ca2044a21aa..ef097dcc4f4 100644 --- a/content/cli/v9/commands/npm-adduser.md +++ b/content/cli/v9/commands/npm-adduser.md @@ -63,6 +63,8 @@ email are read in from prompts. The base URL of the npm registry. + + #### `scope` * Default: the scope of the current project, if any, or "" @@ -93,6 +95,7 @@ npm init --scope=@foo --yes ``` + #### `auth-type` * Default: "web" @@ -101,6 +104,8 @@ npm init --scope=@foo --yes What authentication strategy to use with `login`. Note that if an `otp` config is given, this value will always be set to `legacy`. + + ### See Also * [npm registry](/cli/v9/using-npm/registry) diff --git a/content/cli/v9/commands/npm-audit.md b/content/cli/v9/commands/npm-audit.md index 4ccda2c1cba..8ff56e68c5c 100644 --- a/content/cli/v9/commands/npm-audit.md +++ b/content/cli/v9/commands/npm-audit.md @@ -277,6 +277,8 @@ $ npm audit --audit-level=moderate The minimum level of vulnerability for `npm audit` to exit with a non-zero exit code. + + #### `dry-run` * Default: false @@ -290,6 +292,8 @@ commands that modify your local installation, eg, `install`, `update`, Note: This is NOT honored by other network related commands, eg `dist-tags`, `owner`, etc. + + #### `force` * Default: false @@ -316,6 +320,8 @@ mistakes, unnecessary performance degradation, and malicious input. If you don't have a clear idea of what you want to do, it is strongly recommended that you do not use this option! + + #### `json` * Default: false @@ -328,6 +334,8 @@ Whether or not to output JSON data, rather than the normal output. Not supported by all npm commands. + + #### `package-lock-only` * Default: false @@ -342,6 +350,8 @@ instead of checking `node_modules` and downloading dependencies. For `list` this means the output will be based on the tree described by the `package-lock.json`, rather than the contents of `node_modules`. + + #### `omit` * Default: 'dev' if the `NODE_ENV` environment variable is set to @@ -360,6 +370,8 @@ it will be included. If the resulting omit list includes `'dev'`, then the `NODE_ENV` environment variable will be set to `'production'` for all lifecycle scripts. + + #### `foreground-scripts` * Default: false @@ -372,6 +384,8 @@ input, output, and error with the main npm process. Note that this will generally make installs run slower, and be much noisier, but can be useful for debugging. + + #### `ignore-scripts` * Default: false @@ -384,6 +398,8 @@ Note that commands explicitly intended to run a particular script, such as will still run their intended script if `ignore-scripts` is set, but they will *not* run any pre- or post-scripts. + + #### `workspace` * Default: @@ -446,6 +462,8 @@ When set file: protocol dependencies will be packed and installed as regular dependencies instead of creating a symlink. This option has no effect on workspaces. + + ### See Also * [npm install](/cli/v9/commands/npm-install) diff --git a/content/cli/v9/commands/npm-bugs.md b/content/cli/v9/commands/npm-bugs.md index f8bdae1b9e7..3abcdbe8a26 100644 --- a/content/cli/v9/commands/npm-bugs.md +++ b/content/cli/v9/commands/npm-bugs.md @@ -65,6 +65,8 @@ terminal. Set to `true` to use default system URL opener. + + #### `registry` * Default: "https://registry.npmjs.org/" @@ -72,6 +74,8 @@ Set to `true` to use default system URL opener. The base URL of the npm registry. + + #### `workspace` * Default: diff --git a/content/cli/v9/commands/npm-cache.md b/content/cli/v9/commands/npm-cache.md index ddd82e6b0c6..88544ba760f 100644 --- a/content/cli/v9/commands/npm-cache.md +++ b/content/cli/v9/commands/npm-cache.md @@ -108,6 +108,8 @@ verify`. The location of npm's cache directory. + + ### See Also * [package spec](/cli/v9/using-npm/package-spec) diff --git a/content/cli/v9/commands/npm-ci.md b/content/cli/v9/commands/npm-ci.md index bf4ae1b9645..b30d54cf854 100644 --- a/content/cli/v9/commands/npm-ci.md +++ b/content/cli/v9/commands/npm-ci.md @@ -115,6 +115,8 @@ place, no hoisting. shallow (formerly --global-style) only install direct deps at top-level. linked: (experimental) install in node_modules/.store, link in place, unhoisted. + + #### `legacy-bundling` * Default: false @@ -127,6 +129,8 @@ the same manner that they are depended on. This may cause very deep directory structures and duplicate package installs as there is no de-duplicating. Sets `--install-strategy=nested`. + + #### `global-style` * Default: false @@ -137,6 +141,8 @@ de-duplicating. Sets `--install-strategy=nested`. Only install direct dependencies in the top level `node_modules`, but hoist on deeper dependencies. Sets `--install-strategy=shallow`. + + #### `omit` * Default: 'dev' if the `NODE_ENV` environment variable is set to @@ -155,6 +161,8 @@ it will be included. If the resulting omit list includes `'dev'`, then the `NODE_ENV` environment variable will be set to `'production'` for all lifecycle scripts. + + #### `strict-peer-deps` * Default: false @@ -174,15 +182,7 @@ When such an override is performed, a warning is printed, explaining the conflict and the packages involved. If `--strict-peer-deps` is set, then this warning is treated as a failure. -#### `package-lock` - -* Default: true -* Type: Boolean - -If set to false, then ignore `package-lock.json` files when installing. This -will also prevent _writing_ `package-lock.json` if `save` is true. -This configuration does not affect `npm ci`. #### `foreground-scripts` @@ -196,6 +196,8 @@ input, output, and error with the main npm process. Note that this will generally make installs run slower, and be much noisier, but can be useful for debugging. + + #### `ignore-scripts` * Default: false @@ -208,6 +210,8 @@ Note that commands explicitly intended to run a particular script, such as will still run their intended script if `ignore-scripts` is set, but they will *not* run any pre- or post-scripts. + + #### `audit` * Default: true @@ -218,6 +222,8 @@ default registry and all registries configured for scopes. See the documentation for [`npm audit`](/cli/v9/commands/npm-audit) for details on what is submitted. + + #### `bin-links` * Default: true @@ -230,6 +236,8 @@ Set to false to have it not do this. This can be used to work around the fact that some file systems don't support symlinks, even on ostensibly Unix systems. + + #### `fund` * Default: true @@ -239,6 +247,8 @@ When "true" displays the message at the end of each `npm install` acknowledging the number of dependencies looking for funding. See [`npm fund`](/cli/v9/commands/npm-fund) for details. + + #### `dry-run` * Default: false @@ -252,6 +262,8 @@ commands that modify your local installation, eg, `install`, `update`, Note: This is NOT honored by other network related commands, eg `dist-tags`, `owner`, etc. + + #### `workspace` * Default: @@ -314,6 +326,8 @@ When set file: protocol dependencies will be packed and installed as regular dependencies instead of creating a symlink. This option has no effect on workspaces. + + ### See Also * [npm install](/cli/v9/commands/npm-install) diff --git a/content/cli/v9/commands/npm-config.md b/content/cli/v9/commands/npm-config.md index 9d94a5e8b3a..78e34de78ee 100644 --- a/content/cli/v9/commands/npm-config.md +++ b/content/cli/v9/commands/npm-config.md @@ -147,6 +147,8 @@ Whether or not to output JSON data, rather than the normal output. Not supported by all npm commands. + + #### `global` * Default: false @@ -161,6 +163,8 @@ folder instead of the current working directory. See * bin files are linked to `{prefix}/bin` * man pages are linked to `{prefix}/share/man` + + #### `editor` * Default: The EDITOR or VISUAL environment variables, or @@ -169,6 +173,8 @@ folder instead of the current working directory. See The command to run for `npm edit` and `npm config edit`. + + #### `location` * Default: "user" unless `--global` is passed, which will also set this value @@ -186,6 +192,8 @@ instead of the current working directory. See * bin files are linked to `{prefix}/bin` * man pages are linked to `{prefix}/share/man` + + #### `long` * Default: false @@ -193,6 +201,8 @@ instead of the current working directory. See Show extended information in `ls`, `search`, and `help-search`. + + ### See Also * [npm folders](/cli/v9/configuring-npm/folders) diff --git a/content/cli/v9/commands/npm-dedupe.md b/content/cli/v9/commands/npm-dedupe.md index 07226514304..1df10f3ff0f 100644 --- a/content/cli/v9/commands/npm-dedupe.md +++ b/content/cli/v9/commands/npm-dedupe.md @@ -120,6 +120,8 @@ place, no hoisting. shallow (formerly --global-style) only install direct deps at top-level. linked: (experimental) install in node_modules/.store, link in place, unhoisted. + + #### `legacy-bundling` * Default: false @@ -132,6 +134,8 @@ the same manner that they are depended on. This may cause very deep directory structures and duplicate package installs as there is no de-duplicating. Sets `--install-strategy=nested`. + + #### `global-style` * Default: false @@ -142,6 +146,8 @@ de-duplicating. Sets `--install-strategy=nested`. Only install direct dependencies in the top level `node_modules`, but hoist on deeper dependencies. Sets `--install-strategy=shallow`. + + #### `strict-peer-deps` * Default: false @@ -161,6 +167,8 @@ When such an override is performed, a warning is printed, explaining the conflict and the packages involved. If `--strict-peer-deps` is set, then this warning is treated as a failure. + + #### `package-lock` * Default: true @@ -169,7 +177,7 @@ this warning is treated as a failure. If set to false, then ignore `package-lock.json` files when installing. This will also prevent _writing_ `package-lock.json` if `save` is true. -This configuration does not affect `npm ci`. + #### `omit` @@ -189,6 +197,8 @@ it will be included. If the resulting omit list includes `'dev'`, then the `NODE_ENV` environment variable will be set to `'production'` for all lifecycle scripts. + + #### `ignore-scripts` * Default: false @@ -201,6 +211,8 @@ Note that commands explicitly intended to run a particular script, such as will still run their intended script if `ignore-scripts` is set, but they will *not* run any pre- or post-scripts. + + #### `audit` * Default: true @@ -211,6 +223,8 @@ default registry and all registries configured for scopes. See the documentation for [`npm audit`](/cli/v9/commands/npm-audit) for details on what is submitted. + + #### `bin-links` * Default: true @@ -223,6 +237,8 @@ Set to false to have it not do this. This can be used to work around the fact that some file systems don't support symlinks, even on ostensibly Unix systems. + + #### `fund` * Default: true @@ -232,6 +248,8 @@ When "true" displays the message at the end of each `npm install` acknowledging the number of dependencies looking for funding. See [`npm fund`](/cli/v9/commands/npm-fund) for details. + + #### `dry-run` * Default: false @@ -245,6 +263,8 @@ commands that modify your local installation, eg, `install`, `update`, Note: This is NOT honored by other network related commands, eg `dist-tags`, `owner`, etc. + + #### `workspace` * Default: @@ -307,6 +327,8 @@ When set file: protocol dependencies will be packed and installed as regular dependencies instead of creating a symlink. This option has no effect on workspaces. + + ### See Also * [npm find-dupes](/cli/v9/commands/npm-find-dupes) diff --git a/content/cli/v9/commands/npm-deprecate.md b/content/cli/v9/commands/npm-deprecate.md index 9764bca45a4..65d6df855c7 100644 --- a/content/cli/v9/commands/npm-deprecate.md +++ b/content/cli/v9/commands/npm-deprecate.md @@ -80,6 +80,8 @@ format an empty string. The base URL of the npm registry. + + #### `otp` * Default: null @@ -91,6 +93,8 @@ when publishing or changing package permissions with `npm access`. If not set, and a registry response fails with a challenge for a one-time password, npm will prompt on the command line for one. + + ### See Also * [package spec](/cli/v9/using-npm/package-spec) diff --git a/content/cli/v9/commands/npm-diff.md b/content/cli/v9/commands/npm-diff.md index 4cea9881970..755c1e7c22f 100644 --- a/content/cli/v9/commands/npm-diff.md +++ b/content/cli/v9/commands/npm-diff.md @@ -187,6 +187,8 @@ located within the folder `./lib/` and changed lines of code within the Define arguments to compare in `npm diff`. + + #### `diff-name-only` * Default: false @@ -194,6 +196,8 @@ Define arguments to compare in `npm diff`. Prints only filenames when using `npm diff`. + + #### `diff-unified` * Default: 3 @@ -201,6 +205,8 @@ Prints only filenames when using `npm diff`. The number of lines of context to print in `npm diff`. + + #### `diff-ignore-all-space` * Default: false @@ -208,6 +214,8 @@ The number of lines of context to print in `npm diff`. Ignore whitespace when comparing lines in `npm diff`. + + #### `diff-no-prefix` * Default: false @@ -218,6 +226,8 @@ Do not show any source or destination prefix in `npm diff` output. Note: this causes `npm diff` to ignore the `--diff-src-prefix` and `--diff-dst-prefix` configs. + + #### `diff-src-prefix` * Default: "a/" @@ -225,6 +235,8 @@ Note: this causes `npm diff` to ignore the `--diff-src-prefix` and Source prefix to be used in `npm diff` output. + + #### `diff-dst-prefix` * Default: "b/" @@ -232,6 +244,8 @@ Source prefix to be used in `npm diff` output. Destination prefix to be used in `npm diff` output. + + #### `diff-text` * Default: false @@ -239,6 +253,8 @@ Destination prefix to be used in `npm diff` output. Treat all files as text in `npm diff`. + + #### `global` * Default: false @@ -253,6 +269,8 @@ folder instead of the current working directory. See * bin files are linked to `{prefix}/bin` * man pages are linked to `{prefix}/share/man` + + #### `tag` * Default: "latest" @@ -267,6 +285,8 @@ command, if no explicit tag is given. When used by the `npm diff` command, this is the tag used to fetch the tarball that will be compared with the local files by default. + + #### `workspace` * Default: diff --git a/content/cli/v9/commands/npm-docs.md b/content/cli/v9/commands/npm-docs.md index 407db988cfb..e55fbb61d80 100644 --- a/content/cli/v9/commands/npm-docs.md +++ b/content/cli/v9/commands/npm-docs.md @@ -65,6 +65,8 @@ terminal. Set to `true` to use default system URL opener. + + #### `registry` * Default: "https://registry.npmjs.org/" @@ -72,6 +74,8 @@ Set to `true` to use default system URL opener. The base URL of the npm registry. + + #### `workspace` * Default: diff --git a/content/cli/v9/commands/npm-doctor.md b/content/cli/v9/commands/npm-doctor.md index 2affccb0db4..3e9b7abc50e 100644 --- a/content/cli/v9/commands/npm-doctor.md +++ b/content/cli/v9/commands/npm-doctor.md @@ -144,6 +144,8 @@ reset the cache. The base URL of the npm registry. + + ### See Also * [npm bugs](/cli/v9/commands/npm-bugs) diff --git a/content/cli/v9/commands/npm-edit.md b/content/cli/v9/commands/npm-edit.md index 8f69cfa9f90..4a825290548 100644 --- a/content/cli/v9/commands/npm-edit.md +++ b/content/cli/v9/commands/npm-edit.md @@ -66,6 +66,8 @@ changes to your locally installed copy. The command to run for `npm edit` and `npm config edit`. + + ### See Also * [npm folders](/cli/v9/configuring-npm/folders) diff --git a/content/cli/v9/commands/npm-exec.md b/content/cli/v9/commands/npm-exec.md index f07124e36a8..27b484df7e7 100644 --- a/content/cli/v9/commands/npm-exec.md +++ b/content/cli/v9/commands/npm-exec.md @@ -149,6 +149,8 @@ $ npm exec -- foo@latest bar --package=@npmcli/foo The package or packages to install for [`npm exec`](/cli/v9/commands/npm-exec) + + #### `call` * Default: "" @@ -162,6 +164,7 @@ npm exec --package yo --package generator-node --call "yo node" ``` + #### `workspace` * Default: diff --git a/content/cli/v9/commands/npm-explain.md b/content/cli/v9/commands/npm-explain.md index 3bd03569134..5681afab72c 100644 --- a/content/cli/v9/commands/npm-explain.md +++ b/content/cli/v9/commands/npm-explain.md @@ -98,6 +98,8 @@ Whether or not to output JSON data, rather than the normal output. Not supported by all npm commands. + + #### `workspace` * Default: diff --git a/content/cli/v9/commands/npm-explore.md b/content/cli/v9/commands/npm-explore.md index a16775e86a7..8102034cca2 100644 --- a/content/cli/v9/commands/npm-explore.md +++ b/content/cli/v9/commands/npm-explore.md @@ -70,6 +70,8 @@ sure to use `npm rebuild ` if you make any changes. The shell to run for the `npm explore` command. + + ### See Also * [npm folders](/cli/v9/configuring-npm/folders) diff --git a/content/cli/v9/commands/npm-find-dupes.md b/content/cli/v9/commands/npm-find-dupes.md index bd48b5e7e1d..0116446aa2d 100644 --- a/content/cli/v9/commands/npm-find-dupes.md +++ b/content/cli/v9/commands/npm-find-dupes.md @@ -60,6 +60,8 @@ place, no hoisting. shallow (formerly --global-style) only install direct deps at top-level. linked: (experimental) install in node_modules/.store, link in place, unhoisted. + + #### `legacy-bundling` * Default: false @@ -72,6 +74,8 @@ the same manner that they are depended on. This may cause very deep directory structures and duplicate package installs as there is no de-duplicating. Sets `--install-strategy=nested`. + + #### `global-style` * Default: false @@ -82,6 +86,8 @@ de-duplicating. Sets `--install-strategy=nested`. Only install direct dependencies in the top level `node_modules`, but hoist on deeper dependencies. Sets `--install-strategy=shallow`. + + #### `strict-peer-deps` * Default: false @@ -101,6 +107,8 @@ When such an override is performed, a warning is printed, explaining the conflict and the packages involved. If `--strict-peer-deps` is set, then this warning is treated as a failure. + + #### `package-lock` * Default: true @@ -109,7 +117,7 @@ this warning is treated as a failure. If set to false, then ignore `package-lock.json` files when installing. This will also prevent _writing_ `package-lock.json` if `save` is true. -This configuration does not affect `npm ci`. + #### `omit` @@ -129,6 +137,8 @@ it will be included. If the resulting omit list includes `'dev'`, then the `NODE_ENV` environment variable will be set to `'production'` for all lifecycle scripts. + + #### `ignore-scripts` * Default: false @@ -141,6 +151,8 @@ Note that commands explicitly intended to run a particular script, such as will still run their intended script if `ignore-scripts` is set, but they will *not* run any pre- or post-scripts. + + #### `audit` * Default: true @@ -151,6 +163,8 @@ default registry and all registries configured for scopes. See the documentation for [`npm audit`](/cli/v9/commands/npm-audit) for details on what is submitted. + + #### `bin-links` * Default: true @@ -163,6 +177,8 @@ Set to false to have it not do this. This can be used to work around the fact that some file systems don't support symlinks, even on ostensibly Unix systems. + + #### `fund` * Default: true @@ -172,6 +188,8 @@ When "true" displays the message at the end of each `npm install` acknowledging the number of dependencies looking for funding. See [`npm fund`](/cli/v9/commands/npm-fund) for details. + + #### `workspace` * Default: @@ -234,6 +252,8 @@ When set file: protocol dependencies will be packed and installed as regular dependencies instead of creating a symlink. This option has no effect on workspaces. + + ### See Also * [npm dedupe](/cli/v9/commands/npm-dedupe) diff --git a/content/cli/v9/commands/npm-fund.md b/content/cli/v9/commands/npm-fund.md index db0456d4960..5f5bb1ec564 100644 --- a/content/cli/v9/commands/npm-fund.md +++ b/content/cli/v9/commands/npm-fund.md @@ -108,6 +108,8 @@ Whether or not to output JSON data, rather than the normal output. Not supported by all npm commands. + + #### `browser` * Default: OS X: `"open"`, Windows: `"start"`, Others: `"xdg-open"` @@ -120,6 +122,8 @@ terminal. Set to `true` to use default system URL opener. + + #### `unicode` * Default: false on windows, true on mac/unix systems with a unicode locale, @@ -129,6 +133,8 @@ Set to `true` to use default system URL opener. When set to true, npm uses unicode characters in the tree output. When false, it uses ascii characters instead of unicode glyphs. + + #### `workspace` * Default: @@ -158,6 +164,8 @@ This value is not exported to the environment for child processes. If there are multiple funding sources, which 1-indexed source URL to open. + + ## See Also * [package spec](/cli/v9/using-npm/package-spec) diff --git a/content/cli/v9/commands/npm-help-search.md b/content/cli/v9/commands/npm-help-search.md index 3bad080587d..170fe1b208c 100644 --- a/content/cli/v9/commands/npm-help-search.md +++ b/content/cli/v9/commands/npm-help-search.md @@ -63,6 +63,8 @@ directly. Show extended information in `ls`, `search`, and `help-search`. + + ### See Also * [npm](/cli/v9/commands/npm) diff --git a/content/cli/v9/commands/npm-help.md b/content/cli/v9/commands/npm-help.md index a4720a33954..2b86b42e5c6 100644 --- a/content/cli/v9/commands/npm-help.md +++ b/content/cli/v9/commands/npm-help.md @@ -65,6 +65,8 @@ The program to use to view help content. Set to `"browser"` to view html help content in the default web browser. + + ### See Also * [npm](/cli/v9/commands/npm) diff --git a/content/cli/v9/commands/npm-hook.md b/content/cli/v9/commands/npm-hook.md index efb64b81af4..2a4bf8d98ea 100644 --- a/content/cli/v9/commands/npm-hook.md +++ b/content/cli/v9/commands/npm-hook.md @@ -123,6 +123,8 @@ $ npm hook rm id-deadbeef The base URL of the npm registry. + + #### `otp` * Default: null @@ -134,6 +136,8 @@ when publishing or changing package permissions with `npm access`. If not set, and a registry response fails with a challenge for a one-time password, npm will prompt on the command line for one. + + ### See Also * ["Introducing Hooks" blog post](https://blog.npmjs.org/post/145260155635/introducing-hooks-get-notifications-of-npm) diff --git a/content/cli/v9/commands/npm-init.md b/content/cli/v9/commands/npm-init.md index d2962c45e8a..108e73ad0ac 100644 --- a/content/cli/v9/commands/npm-init.md +++ b/content/cli/v9/commands/npm-init.md @@ -195,6 +195,8 @@ dot to represent the current directory in that context, e.g: `react-app .`: Automatically answer "yes" to any prompts that npm might print on the command line. + + #### `force` * Default: false @@ -221,6 +223,8 @@ mistakes, unnecessary performance degradation, and malicious input. If you don't have a clear idea of what you want to do, it is strongly recommended that you do not use this option! + + #### `scope` * Default: the scope of the current project, if any, or "" @@ -251,6 +255,7 @@ npm init --scope=@foo --yes ``` + #### `workspace` * Default: @@ -299,6 +304,8 @@ This value is not exported to the environment for child processes. If set to true, the npm cli will run an update after operations that may possibly change the workspaces installed to the `node_modules` folder. + + #### `include-workspace-root` * Default: false diff --git a/content/cli/v9/commands/npm-install-ci-test.md b/content/cli/v9/commands/npm-install-ci-test.md index 95e66f2e9e2..2bf38855951 100644 --- a/content/cli/v9/commands/npm-install-ci-test.md +++ b/content/cli/v9/commands/npm-install-ci-test.md @@ -61,6 +61,8 @@ place, no hoisting. shallow (formerly --global-style) only install direct deps at top-level. linked: (experimental) install in node_modules/.store, link in place, unhoisted. + + #### `legacy-bundling` * Default: false @@ -73,6 +75,8 @@ the same manner that they are depended on. This may cause very deep directory structures and duplicate package installs as there is no de-duplicating. Sets `--install-strategy=nested`. + + #### `global-style` * Default: false @@ -83,6 +87,8 @@ de-duplicating. Sets `--install-strategy=nested`. Only install direct dependencies in the top level `node_modules`, but hoist on deeper dependencies. Sets `--install-strategy=shallow`. + + #### `omit` * Default: 'dev' if the `NODE_ENV` environment variable is set to @@ -101,6 +107,8 @@ it will be included. If the resulting omit list includes `'dev'`, then the `NODE_ENV` environment variable will be set to `'production'` for all lifecycle scripts. + + #### `strict-peer-deps` * Default: false @@ -120,15 +128,7 @@ When such an override is performed, a warning is printed, explaining the conflict and the packages involved. If `--strict-peer-deps` is set, then this warning is treated as a failure. -#### `package-lock` - -* Default: true -* Type: Boolean - -If set to false, then ignore `package-lock.json` files when installing. This -will also prevent _writing_ `package-lock.json` if `save` is true. -This configuration does not affect `npm ci`. #### `foreground-scripts` @@ -142,6 +142,8 @@ input, output, and error with the main npm process. Note that this will generally make installs run slower, and be much noisier, but can be useful for debugging. + + #### `ignore-scripts` * Default: false @@ -154,6 +156,8 @@ Note that commands explicitly intended to run a particular script, such as will still run their intended script if `ignore-scripts` is set, but they will *not* run any pre- or post-scripts. + + #### `audit` * Default: true @@ -164,6 +168,8 @@ default registry and all registries configured for scopes. See the documentation for [`npm audit`](/cli/v9/commands/npm-audit) for details on what is submitted. + + #### `bin-links` * Default: true @@ -176,6 +182,8 @@ Set to false to have it not do this. This can be used to work around the fact that some file systems don't support symlinks, even on ostensibly Unix systems. + + #### `fund` * Default: true @@ -185,6 +193,8 @@ When "true" displays the message at the end of each `npm install` acknowledging the number of dependencies looking for funding. See [`npm fund`](/cli/v9/commands/npm-fund) for details. + + #### `dry-run` * Default: false @@ -198,6 +208,8 @@ commands that modify your local installation, eg, `install`, `update`, Note: This is NOT honored by other network related commands, eg `dist-tags`, `owner`, etc. + + #### `workspace` * Default: @@ -260,6 +272,8 @@ When set file: protocol dependencies will be packed and installed as regular dependencies instead of creating a symlink. This option has no effect on workspaces. + + ### See Also * [npm install-test](/cli/v9/commands/npm-install-test) diff --git a/content/cli/v9/commands/npm-install-test.md b/content/cli/v9/commands/npm-install-test.md index 1e7e39a4735..fbf6741be74 100644 --- a/content/cli/v9/commands/npm-install-test.md +++ b/content/cli/v9/commands/npm-install-test.md @@ -62,6 +62,8 @@ When used with the `npm rm` command, removes the dependency from Will also prevent writing to `package-lock.json` if set to `false`. + + #### `save-exact` * Default: false @@ -70,6 +72,8 @@ Will also prevent writing to `package-lock.json` if set to `false`. Dependencies saved to package.json will be configured with an exact version rather than using npm's default semver range operator. + + #### `global` * Default: false @@ -84,6 +88,8 @@ folder instead of the current working directory. See * bin files are linked to `{prefix}/bin` * man pages are linked to `{prefix}/share/man` + + #### `install-strategy` * Default: "hoisted" @@ -96,6 +102,8 @@ place, no hoisting. shallow (formerly --global-style) only install direct deps at top-level. linked: (experimental) install in node_modules/.store, link in place, unhoisted. + + #### `legacy-bundling` * Default: false @@ -108,6 +116,8 @@ the same manner that they are depended on. This may cause very deep directory structures and duplicate package installs as there is no de-duplicating. Sets `--install-strategy=nested`. + + #### `global-style` * Default: false @@ -118,6 +128,8 @@ de-duplicating. Sets `--install-strategy=nested`. Only install direct dependencies in the top level `node_modules`, but hoist on deeper dependencies. Sets `--install-strategy=shallow`. + + #### `omit` * Default: 'dev' if the `NODE_ENV` environment variable is set to @@ -136,6 +148,8 @@ it will be included. If the resulting omit list includes `'dev'`, then the `NODE_ENV` environment variable will be set to `'production'` for all lifecycle scripts. + + #### `strict-peer-deps` * Default: false @@ -155,6 +169,18 @@ When such an override is performed, a warning is printed, explaining the conflict and the packages involved. If `--strict-peer-deps` is set, then this warning is treated as a failure. + + +#### `prefer-dedupe` + +* Default: false +* Type: Boolean + +Prefer to deduplicate packages if possible, rather than choosing a newer +version of a dependency. + + + #### `package-lock` * Default: true @@ -163,7 +189,7 @@ this warning is treated as a failure. If set to false, then ignore `package-lock.json` files when installing. This will also prevent _writing_ `package-lock.json` if `save` is true. -This configuration does not affect `npm ci`. + #### `foreground-scripts` @@ -177,6 +203,8 @@ input, output, and error with the main npm process. Note that this will generally make installs run slower, and be much noisier, but can be useful for debugging. + + #### `ignore-scripts` * Default: false @@ -189,6 +217,8 @@ Note that commands explicitly intended to run a particular script, such as will still run their intended script if `ignore-scripts` is set, but they will *not* run any pre- or post-scripts. + + #### `audit` * Default: true @@ -199,6 +229,8 @@ default registry and all registries configured for scopes. See the documentation for [`npm audit`](/cli/v9/commands/npm-audit) for details on what is submitted. + + #### `bin-links` * Default: true @@ -211,6 +243,8 @@ Set to false to have it not do this. This can be used to work around the fact that some file systems don't support symlinks, even on ostensibly Unix systems. + + #### `fund` * Default: true @@ -220,6 +254,8 @@ When "true" displays the message at the end of each `npm install` acknowledging the number of dependencies looking for funding. See [`npm fund`](/cli/v9/commands/npm-fund) for details. + + #### `dry-run` * Default: false @@ -233,6 +269,8 @@ commands that modify your local installation, eg, `install`, `update`, Note: This is NOT honored by other network related commands, eg `dist-tags`, `owner`, etc. + + #### `workspace` * Default: @@ -295,6 +333,8 @@ When set file: protocol dependencies will be packed and installed as regular dependencies instead of creating a symlink. This option has no effect on workspaces. + + ### See Also * [npm install](/cli/v9/commands/npm-install) diff --git a/content/cli/v9/commands/npm-install.md b/content/cli/v9/commands/npm-install.md index 072af93dfa7..db2e5044bd7 100644 --- a/content/cli/v9/commands/npm-install.md +++ b/content/cli/v9/commands/npm-install.md @@ -452,6 +452,8 @@ When used with the `npm rm` command, removes the dependency from Will also prevent writing to `package-lock.json` if set to `false`. + + #### `save-exact` * Default: false @@ -460,6 +462,8 @@ Will also prevent writing to `package-lock.json` if set to `false`. Dependencies saved to package.json will be configured with an exact version rather than using npm's default semver range operator. + + #### `global` * Default: false @@ -474,6 +478,8 @@ folder instead of the current working directory. See * bin files are linked to `{prefix}/bin` * man pages are linked to `{prefix}/share/man` + + #### `install-strategy` * Default: "hoisted" @@ -486,6 +492,8 @@ place, no hoisting. shallow (formerly --global-style) only install direct deps at top-level. linked: (experimental) install in node_modules/.store, link in place, unhoisted. + + #### `legacy-bundling` * Default: false @@ -498,6 +506,8 @@ the same manner that they are depended on. This may cause very deep directory structures and duplicate package installs as there is no de-duplicating. Sets `--install-strategy=nested`. + + #### `global-style` * Default: false @@ -508,6 +518,8 @@ de-duplicating. Sets `--install-strategy=nested`. Only install direct dependencies in the top level `node_modules`, but hoist on deeper dependencies. Sets `--install-strategy=shallow`. + + #### `omit` * Default: 'dev' if the `NODE_ENV` environment variable is set to @@ -526,6 +538,8 @@ it will be included. If the resulting omit list includes `'dev'`, then the `NODE_ENV` environment variable will be set to `'production'` for all lifecycle scripts. + + #### `strict-peer-deps` * Default: false @@ -545,6 +559,18 @@ When such an override is performed, a warning is printed, explaining the conflict and the packages involved. If `--strict-peer-deps` is set, then this warning is treated as a failure. + + +#### `prefer-dedupe` + +* Default: false +* Type: Boolean + +Prefer to deduplicate packages if possible, rather than choosing a newer +version of a dependency. + + + #### `package-lock` * Default: true @@ -553,7 +579,7 @@ this warning is treated as a failure. If set to false, then ignore `package-lock.json` files when installing. This will also prevent _writing_ `package-lock.json` if `save` is true. -This configuration does not affect `npm ci`. + #### `foreground-scripts` @@ -567,6 +593,8 @@ input, output, and error with the main npm process. Note that this will generally make installs run slower, and be much noisier, but can be useful for debugging. + + #### `ignore-scripts` * Default: false @@ -579,6 +607,8 @@ Note that commands explicitly intended to run a particular script, such as will still run their intended script if `ignore-scripts` is set, but they will *not* run any pre- or post-scripts. + + #### `audit` * Default: true @@ -589,6 +619,8 @@ default registry and all registries configured for scopes. See the documentation for [`npm audit`](/cli/v9/commands/npm-audit) for details on what is submitted. + + #### `bin-links` * Default: true @@ -601,6 +633,8 @@ Set to false to have it not do this. This can be used to work around the fact that some file systems don't support symlinks, even on ostensibly Unix systems. + + #### `fund` * Default: true @@ -610,6 +644,8 @@ When "true" displays the message at the end of each `npm install` acknowledging the number of dependencies looking for funding. See [`npm fund`](/cli/v9/commands/npm-fund) for details. + + #### `dry-run` * Default: false @@ -623,6 +659,8 @@ commands that modify your local installation, eg, `install`, `update`, Note: This is NOT honored by other network related commands, eg `dist-tags`, `owner`, etc. + + #### `workspace` * Default: @@ -685,6 +723,8 @@ When set file: protocol dependencies will be packed and installed as regular dependencies instead of creating a symlink. This option has no effect on workspaces. + + ### Algorithm Given a `package{dep}` structure: `A{B,C}, B{C}, C{D}`, diff --git a/content/cli/v9/commands/npm-link.md b/content/cli/v9/commands/npm-link.md index bc21a6b3fdf..883f5a9c1ef 100644 --- a/content/cli/v9/commands/npm-link.md +++ b/content/cli/v9/commands/npm-link.md @@ -153,6 +153,8 @@ When used with the `npm rm` command, removes the dependency from Will also prevent writing to `package-lock.json` if set to `false`. + + #### `save-exact` * Default: false @@ -161,6 +163,8 @@ Will also prevent writing to `package-lock.json` if set to `false`. Dependencies saved to package.json will be configured with an exact version rather than using npm's default semver range operator. + + #### `global` * Default: false @@ -175,6 +179,8 @@ folder instead of the current working directory. See * bin files are linked to `{prefix}/bin` * man pages are linked to `{prefix}/share/man` + + #### `install-strategy` * Default: "hoisted" @@ -187,6 +193,8 @@ place, no hoisting. shallow (formerly --global-style) only install direct deps at top-level. linked: (experimental) install in node_modules/.store, link in place, unhoisted. + + #### `legacy-bundling` * Default: false @@ -199,6 +207,8 @@ the same manner that they are depended on. This may cause very deep directory structures and duplicate package installs as there is no de-duplicating. Sets `--install-strategy=nested`. + + #### `global-style` * Default: false @@ -209,6 +219,8 @@ de-duplicating. Sets `--install-strategy=nested`. Only install direct dependencies in the top level `node_modules`, but hoist on deeper dependencies. Sets `--install-strategy=shallow`. + + #### `strict-peer-deps` * Default: false @@ -228,6 +240,8 @@ When such an override is performed, a warning is printed, explaining the conflict and the packages involved. If `--strict-peer-deps` is set, then this warning is treated as a failure. + + #### `package-lock` * Default: true @@ -236,7 +250,7 @@ this warning is treated as a failure. If set to false, then ignore `package-lock.json` files when installing. This will also prevent _writing_ `package-lock.json` if `save` is true. -This configuration does not affect `npm ci`. + #### `omit` @@ -256,6 +270,8 @@ it will be included. If the resulting omit list includes `'dev'`, then the `NODE_ENV` environment variable will be set to `'production'` for all lifecycle scripts. + + #### `ignore-scripts` * Default: false @@ -268,6 +284,8 @@ Note that commands explicitly intended to run a particular script, such as will still run their intended script if `ignore-scripts` is set, but they will *not* run any pre- or post-scripts. + + #### `audit` * Default: true @@ -278,6 +296,8 @@ default registry and all registries configured for scopes. See the documentation for [`npm audit`](/cli/v9/commands/npm-audit) for details on what is submitted. + + #### `bin-links` * Default: true @@ -290,6 +310,8 @@ Set to false to have it not do this. This can be used to work around the fact that some file systems don't support symlinks, even on ostensibly Unix systems. + + #### `fund` * Default: true @@ -299,6 +321,8 @@ When "true" displays the message at the end of each `npm install` acknowledging the number of dependencies looking for funding. See [`npm fund`](/cli/v9/commands/npm-fund) for details. + + #### `dry-run` * Default: false @@ -312,6 +336,8 @@ commands that modify your local installation, eg, `install`, `update`, Note: This is NOT honored by other network related commands, eg `dist-tags`, `owner`, etc. + + #### `workspace` * Default: @@ -374,6 +400,8 @@ When set file: protocol dependencies will be packed and installed as regular dependencies instead of creating a symlink. This option has no effect on workspaces. + + ### See Also * [package spec](/cli/v9/using-npm/package-spec) diff --git a/content/cli/v9/commands/npm-login.md b/content/cli/v9/commands/npm-login.md index 99716304703..459b356571f 100644 --- a/content/cli/v9/commands/npm-login.md +++ b/content/cli/v9/commands/npm-login.md @@ -70,6 +70,8 @@ your existing record. The base URL of the npm registry. + + #### `scope` * Default: the scope of the current project, if any, or "" @@ -100,6 +102,7 @@ npm init --scope=@foo --yes ``` + #### `auth-type` * Default: "web" @@ -108,6 +111,8 @@ npm init --scope=@foo --yes What authentication strategy to use with `login`. Note that if an `otp` config is given, this value will always be set to `legacy`. + + ### See Also * [npm registry](/cli/v9/using-npm/registry) diff --git a/content/cli/v9/commands/npm-logout.md b/content/cli/v9/commands/npm-logout.md index d8af23f3c62..b9e02ef705c 100644 --- a/content/cli/v9/commands/npm-logout.md +++ b/content/cli/v9/commands/npm-logout.md @@ -65,6 +65,8 @@ connected to that scope, if set. The base URL of the npm registry. + + #### `scope` * Default: the scope of the current project, if any, or "" @@ -95,6 +97,7 @@ npm init --scope=@foo --yes ``` + ### See Also * [npm adduser](/cli/v9/commands/npm-adduser) diff --git a/content/cli/v9/commands/npm-ls.md b/content/cli/v9/commands/npm-ls.md index 53d3d597f0d..beb0e692e4c 100644 --- a/content/cli/v9/commands/npm-ls.md +++ b/content/cli/v9/commands/npm-ls.md @@ -58,7 +58,7 @@ packages will *also* show the paths to the specified packages. For example, running `npm ls promzard` in npm's source tree will show: ```bash -npm@9.6.7 /path/to/npm +npm@9.7.1 /path/to/npm └─┬ init-package-json@0.0.4 └── promzard@0.1.5 ``` @@ -113,6 +113,8 @@ When running `npm outdated` and `npm ls`, setting `--all` will show all outdated or installed packages, rather than only those directly depended upon by the current project. + + #### `json` * Default: false @@ -125,6 +127,8 @@ Whether or not to output JSON data, rather than the normal output. Not supported by all npm commands. + + #### `long` * Default: false @@ -132,6 +136,8 @@ Not supported by all npm commands. Show extended information in `ls`, `search`, and `help-search`. + + #### `parseable` * Default: false @@ -140,6 +146,8 @@ Show extended information in `ls`, `search`, and `help-search`. Output parseable results from commands that write to standard output. For `npm search`, this will be tab-separated table format. + + #### `global` * Default: false @@ -154,6 +162,8 @@ folder instead of the current working directory. See * bin files are linked to `{prefix}/bin` * man pages are linked to `{prefix}/share/man` + + #### `depth` * Default: `Infinity` if `--all` is set, otherwise `1` @@ -164,6 +174,8 @@ The depth to go when recursing packages for `npm ls`. If not set, `npm ls` will show only the immediate dependencies of the root project. If `--all` is set, then npm will show all dependencies by default. + + #### `omit` * Default: 'dev' if the `NODE_ENV` environment variable is set to @@ -182,6 +194,8 @@ it will be included. If the resulting omit list includes `'dev'`, then the `NODE_ENV` environment variable will be set to `'production'` for all lifecycle scripts. + + #### `link` * Default: false @@ -189,6 +203,8 @@ variable will be set to `'production'` for all lifecycle scripts. Used with `npm ls`, limiting output to only those packages that are linked. + + #### `package-lock-only` * Default: false @@ -203,6 +219,8 @@ instead of checking `node_modules` and downloading dependencies. For `list` this means the output will be based on the tree described by the `package-lock.json`, rather than the contents of `node_modules`. + + #### `unicode` * Default: false on windows, true on mac/unix systems with a unicode locale, @@ -212,6 +230,8 @@ For `list` this means the output will be based on the tree described by the When set to true, npm uses unicode characters in the tree output. When false, it uses ascii characters instead of unicode glyphs. + + #### `workspace` * Default: @@ -274,6 +294,8 @@ When set file: protocol dependencies will be packed and installed as regular dependencies instead of creating a symlink. This option has no effect on workspaces. + + ### See Also * [package spec](/cli/v9/using-npm/package-spec) diff --git a/content/cli/v9/commands/npm-org.md b/content/cli/v9/commands/npm-org.md index 2822637904d..e71c7b4875e 100644 --- a/content/cli/v9/commands/npm-org.md +++ b/content/cli/v9/commands/npm-org.md @@ -100,6 +100,8 @@ listing them, and finding specific ones and their roles. The base URL of the npm registry. + + #### `otp` * Default: null @@ -111,6 +113,8 @@ when publishing or changing package permissions with `npm access`. If not set, and a registry response fails with a challenge for a one-time password, npm will prompt on the command line for one. + + #### `json` * Default: false @@ -123,6 +127,8 @@ Whether or not to output JSON data, rather than the normal output. Not supported by all npm commands. + + #### `parseable` * Default: false @@ -131,6 +137,8 @@ Not supported by all npm commands. Output parseable results from commands that write to standard output. For `npm search`, this will be tab-separated table format. + + ### See Also * [using orgs](/cli/v9/using-npm/orgs) diff --git a/content/cli/v9/commands/npm-outdated.md b/content/cli/v9/commands/npm-outdated.md index 8987f0e463f..14e447e0a0c 100644 --- a/content/cli/v9/commands/npm-outdated.md +++ b/content/cli/v9/commands/npm-outdated.md @@ -126,6 +126,8 @@ When running `npm outdated` and `npm ls`, setting `--all` will show all outdated or installed packages, rather than only those directly depended upon by the current project. + + #### `json` * Default: false @@ -138,6 +140,8 @@ Whether or not to output JSON data, rather than the normal output. Not supported by all npm commands. + + #### `long` * Default: false @@ -145,6 +149,8 @@ Not supported by all npm commands. Show extended information in `ls`, `search`, and `help-search`. + + #### `parseable` * Default: false @@ -153,6 +159,8 @@ Show extended information in `ls`, `search`, and `help-search`. Output parseable results from commands that write to standard output. For `npm search`, this will be tab-separated table format. + + #### `global` * Default: false @@ -167,6 +175,8 @@ folder instead of the current working directory. See * bin files are linked to `{prefix}/bin` * man pages are linked to `{prefix}/share/man` + + #### `workspace` * Default: diff --git a/content/cli/v9/commands/npm-owner.md b/content/cli/v9/commands/npm-owner.md index 98894794770..68ac6f07d88 100644 --- a/content/cli/v9/commands/npm-owner.md +++ b/content/cli/v9/commands/npm-owner.md @@ -73,6 +73,8 @@ flow when changing ownership or include an otp on the command line with `--otp`. The base URL of the npm registry. + + #### `otp` * Default: null @@ -84,6 +86,8 @@ when publishing or changing package permissions with `npm access`. If not set, and a registry response fails with a challenge for a one-time password, npm will prompt on the command line for one. + + #### `workspace` * Default: diff --git a/content/cli/v9/commands/npm-pack.md b/content/cli/v9/commands/npm-pack.md index 3eb5b660ba9..8c1baa5738b 100644 --- a/content/cli/v9/commands/npm-pack.md +++ b/content/cli/v9/commands/npm-pack.md @@ -56,6 +56,8 @@ commands that modify your local installation, eg, `install`, `update`, Note: This is NOT honored by other network related commands, eg `dist-tags`, `owner`, etc. + + #### `json` * Default: false @@ -68,6 +70,8 @@ Whether or not to output JSON data, rather than the normal output. Not supported by all npm commands. + + #### `pack-destination` * Default: "." @@ -75,6 +79,8 @@ Not supported by all npm commands. Directory in which `npm pack` will save tarballs. + + #### `workspace` * Default: diff --git a/content/cli/v9/commands/npm-ping.md b/content/cli/v9/commands/npm-ping.md index efd6c1746a2..3aba6f7f457 100644 --- a/content/cli/v9/commands/npm-ping.md +++ b/content/cli/v9/commands/npm-ping.md @@ -68,6 +68,8 @@ npm ERR! 404 Not Found - GET http://www.foo.com/-/ping?write=true The base URL of the npm registry. + + ### See Also * [npm doctor](/cli/v9/commands/npm-doctor) diff --git a/content/cli/v9/commands/npm-pkg.md b/content/cli/v9/commands/npm-pkg.md index 434b9ef027c..891f3ccda95 100644 --- a/content/cli/v9/commands/npm-pkg.md +++ b/content/cli/v9/commands/npm-pkg.md @@ -232,6 +232,8 @@ mistakes, unnecessary performance degradation, and malicious input. If you don't have a clear idea of what you want to do, it is strongly recommended that you do not use this option! + + #### `json` * Default: false @@ -244,6 +246,8 @@ Whether or not to output JSON data, rather than the normal output. Not supported by all npm commands. + + #### `workspace` * Default: diff --git a/content/cli/v9/commands/npm-prefix.md b/content/cli/v9/commands/npm-prefix.md index 3b91a21ec59..fd20dc2aa7e 100644 --- a/content/cli/v9/commands/npm-prefix.md +++ b/content/cli/v9/commands/npm-prefix.md @@ -80,6 +80,8 @@ folder instead of the current working directory. See * bin files are linked to `{prefix}/bin` * man pages are linked to `{prefix}/share/man` + + ### See Also * [npm root](/cli/v9/commands/npm-root) diff --git a/content/cli/v9/commands/npm-profile.md b/content/cli/v9/commands/npm-profile.md index 1f1588124c2..879ecd5f193 100644 --- a/content/cli/v9/commands/npm-profile.md +++ b/content/cli/v9/commands/npm-profile.md @@ -112,6 +112,8 @@ Some of these commands may not be available on non npmjs.com registries. The base URL of the npm registry. + + #### `json` * Default: false @@ -124,6 +126,8 @@ Whether or not to output JSON data, rather than the normal output. Not supported by all npm commands. + + #### `parseable` * Default: false @@ -132,6 +136,8 @@ Not supported by all npm commands. Output parseable results from commands that write to standard output. For `npm search`, this will be tab-separated table format. + + #### `otp` * Default: null @@ -143,6 +149,8 @@ when publishing or changing package permissions with `npm access`. If not set, and a registry response fails with a challenge for a one-time password, npm will prompt on the command line for one. + + ### See Also * [npm adduser](/cli/v9/commands/npm-adduser) diff --git a/content/cli/v9/commands/npm-prune.md b/content/cli/v9/commands/npm-prune.md index 09531997c5e..8a7c8f2cbc9 100644 --- a/content/cli/v9/commands/npm-prune.md +++ b/content/cli/v9/commands/npm-prune.md @@ -84,6 +84,8 @@ it will be included. If the resulting omit list includes `'dev'`, then the `NODE_ENV` environment variable will be set to `'production'` for all lifecycle scripts. + + #### `dry-run` * Default: false @@ -97,6 +99,8 @@ commands that modify your local installation, eg, `install`, `update`, Note: This is NOT honored by other network related commands, eg `dist-tags`, `owner`, etc. + + #### `json` * Default: false @@ -109,6 +113,8 @@ Whether or not to output JSON data, rather than the normal output. Not supported by all npm commands. + + #### `foreground-scripts` * Default: false @@ -121,6 +127,8 @@ input, output, and error with the main npm process. Note that this will generally make installs run slower, and be much noisier, but can be useful for debugging. + + #### `ignore-scripts` * Default: false @@ -133,6 +141,8 @@ Note that commands explicitly intended to run a particular script, such as will still run their intended script if `ignore-scripts` is set, but they will *not* run any pre- or post-scripts. + + #### `workspace` * Default: @@ -195,6 +205,8 @@ When set file: protocol dependencies will be packed and installed as regular dependencies instead of creating a symlink. This option has no effect on workspaces. + + ### See Also * [npm uninstall](/cli/v9/commands/npm-uninstall) diff --git a/content/cli/v9/commands/npm-publish.md b/content/cli/v9/commands/npm-publish.md index ced1b124701..f86c6844b8e 100644 --- a/content/cli/v9/commands/npm-publish.md +++ b/content/cli/v9/commands/npm-publish.md @@ -132,6 +132,8 @@ command, if no explicit tag is given. When used by the `npm diff` command, this is the tag used to fetch the tarball that will be compared with the local files by default. + + #### `access` * Default: 'public' for new packages, existing packages it will not change the @@ -148,6 +150,8 @@ packages. Specifying a value of `restricted` or `public` during publish will change the access for an existing package the same way that `npm access set status` would. + + #### `dry-run` * Default: false @@ -161,6 +165,8 @@ commands that modify your local installation, eg, `install`, `update`, Note: This is NOT honored by other network related commands, eg `dist-tags`, `owner`, etc. + + #### `otp` * Default: null @@ -172,6 +178,8 @@ when publishing or changing package permissions with `npm access`. If not set, and a registry response fails with a challenge for a one-time password, npm will prompt on the command line for one. + + #### `workspace` * Default: @@ -233,6 +241,17 @@ This value is not exported to the environment for child processes. When publishing from a supported cloud CI/CD system, the package will be publicly linked to where it was built and published from. +This config can not be used with: `provenance-file` + +#### `provenance-file` + +* Default: null +* Type: Path + +When publishing, the provenance bundle at the given path will be used. + +This config can not be used with: `provenance` + ### See Also * [package spec](/cli/v9/using-npm/package-spec) diff --git a/content/cli/v9/commands/npm-query.md b/content/cli/v9/commands/npm-query.md index b15493e98f5..c006cd63174 100644 --- a/content/cli/v9/commands/npm-query.md +++ b/content/cli/v9/commands/npm-query.md @@ -183,6 +183,8 @@ folder instead of the current working directory. See * bin files are linked to `{prefix}/bin` * man pages are linked to `{prefix}/share/man` + + #### `workspace` * Default: diff --git a/content/cli/v9/commands/npm-rebuild.md b/content/cli/v9/commands/npm-rebuild.md index 57395ca66aa..f0f117ed7c2 100644 --- a/content/cli/v9/commands/npm-rebuild.md +++ b/content/cli/v9/commands/npm-rebuild.md @@ -70,6 +70,8 @@ folder instead of the current working directory. See * bin files are linked to `{prefix}/bin` * man pages are linked to `{prefix}/share/man` + + #### `bin-links` * Default: true @@ -82,6 +84,8 @@ Set to false to have it not do this. This can be used to work around the fact that some file systems don't support symlinks, even on ostensibly Unix systems. + + #### `foreground-scripts` * Default: false @@ -94,6 +98,8 @@ input, output, and error with the main npm process. Note that this will generally make installs run slower, and be much noisier, but can be useful for debugging. + + #### `ignore-scripts` * Default: false @@ -106,6 +112,8 @@ Note that commands explicitly intended to run a particular script, such as will still run their intended script if `ignore-scripts` is set, but they will *not* run any pre- or post-scripts. + + #### `workspace` * Default: @@ -168,6 +176,8 @@ When set file: protocol dependencies will be packed and installed as regular dependencies instead of creating a symlink. This option has no effect on workspaces. + + ### See Also * [package spec](/cli/v9/using-npm/package-spec) diff --git a/content/cli/v9/commands/npm-repo.md b/content/cli/v9/commands/npm-repo.md index 0173d2a4b0e..2461d6e9780 100644 --- a/content/cli/v9/commands/npm-repo.md +++ b/content/cli/v9/commands/npm-repo.md @@ -63,6 +63,8 @@ terminal. Set to `true` to use default system URL opener. + + #### `registry` * Default: "https://registry.npmjs.org/" @@ -70,6 +72,8 @@ Set to `true` to use default system URL opener. The base URL of the npm registry. + + #### `workspace` * Default: diff --git a/content/cli/v9/commands/npm-restart.md b/content/cli/v9/commands/npm-restart.md index 0c582773bf5..f052eb97876 100644 --- a/content/cli/v9/commands/npm-restart.md +++ b/content/cli/v9/commands/npm-restart.md @@ -79,6 +79,8 @@ Note that commands explicitly intended to run a particular script, such as will still run their intended script if `ignore-scripts` is set, but they will *not* run any pre- or post-scripts. + + #### `script-shell` * Default: '/bin/sh' on POSIX systems, 'cmd.exe' on Windows @@ -87,6 +89,8 @@ will *not* run any pre- or post-scripts. The shell to use for scripts run with the `npm exec`, `npm run` and `npm init ` commands. + + ### See Also * [npm run-script](/cli/v9/commands/npm-run-script) diff --git a/content/cli/v9/commands/npm-root.md b/content/cli/v9/commands/npm-root.md index e9fcaa09984..c9057de31bc 100644 --- a/content/cli/v9/commands/npm-root.md +++ b/content/cli/v9/commands/npm-root.md @@ -72,6 +72,8 @@ folder instead of the current working directory. See * bin files are linked to `{prefix}/bin` * man pages are linked to `{prefix}/share/man` + + ### See Also * [npm prefix](/cli/v9/commands/npm-prefix) diff --git a/content/cli/v9/commands/npm-run-script.md b/content/cli/v9/commands/npm-run-script.md index 769b93e2fa6..5629f9fde3d 100644 --- a/content/cli/v9/commands/npm-run-script.md +++ b/content/cli/v9/commands/npm-run-script.md @@ -247,6 +247,8 @@ Note that commands explicitly intended to run a particular script, such as will still run their intended script if `ignore-scripts` is set, but they will *not* run any pre- or post-scripts. + + #### `foreground-scripts` * Default: false @@ -259,6 +261,8 @@ input, output, and error with the main npm process. Note that this will generally make installs run slower, and be much noisier, but can be useful for debugging. + + #### `script-shell` * Default: '/bin/sh' on POSIX systems, 'cmd.exe' on Windows @@ -267,6 +271,8 @@ but can be useful for debugging. The shell to use for scripts run with the `npm exec`, `npm run` and `npm init ` commands. + + ### See Also * [npm scripts](/cli/v9/using-npm/scripts) diff --git a/content/cli/v9/commands/npm-search.md b/content/cli/v9/commands/npm-search.md index 0d70e74010a..8618435c99c 100644 --- a/content/cli/v9/commands/npm-search.md +++ b/content/cli/v9/commands/npm-search.md @@ -77,6 +77,8 @@ expression characters in most shells.) Show extended information in `ls`, `search`, and `help-search`. + + #### `json` * Default: false @@ -89,6 +91,8 @@ Whether or not to output JSON data, rather than the normal output. Not supported by all npm commands. + + #### `color` * Default: true unless the NO_COLOR environ is set to something other than '0' @@ -97,6 +101,8 @@ Not supported by all npm commands. If false, never shows colors. If `"always"` then always shows colors. If true, then only prints color codes for tty file descriptors. + + #### `parseable` * Default: false @@ -105,6 +111,8 @@ true, then only prints color codes for tty file descriptors. Output parseable results from commands that write to standard output. For `npm search`, this will be tab-separated table format. + + #### `description` * Default: true @@ -112,6 +120,8 @@ Output parseable results from commands that write to standard output. For Show the description in `npm search` + + #### `searchopts` * Default: "" @@ -119,6 +129,8 @@ Show the description in `npm search` Space-separated options that are always passed to search. + + #### `searchexclude` * Default: "" @@ -126,6 +138,8 @@ Space-separated options that are always passed to search. Space-separated options that limit the results from search. + + #### `registry` * Default: "https://registry.npmjs.org/" @@ -133,6 +147,8 @@ Space-separated options that limit the results from search. The base URL of the npm registry. + + #### `prefer-online` * Default: false @@ -141,6 +157,8 @@ The base URL of the npm registry. If true, staleness checks for cached data will be forced, making the CLI look for updates immediately even for fresh package data. + + #### `prefer-offline` * Default: false @@ -150,6 +168,8 @@ If true, staleness checks for cached data will be bypassed, but missing data will be requested from the server. To force full offline mode, use `--offline`. + + #### `offline` * Default: false @@ -158,6 +178,8 @@ will be requested from the server. To force full offline mode, use Force offline mode: no network requests will be done during install. To allow the CLI to fill in missing cache data, see `--prefer-offline`. + + ### See Also * [npm registry](/cli/v9/using-npm/registry) diff --git a/content/cli/v9/commands/npm-star.md b/content/cli/v9/commands/npm-star.md index c8b0b2c0625..943b657eb17 100644 --- a/content/cli/v9/commands/npm-star.md +++ b/content/cli/v9/commands/npm-star.md @@ -73,6 +73,8 @@ You can see all your starred packages using [`npm stars`](/cli/v9/commands/npm-s The base URL of the npm registry. + + #### `unicode` * Default: false on windows, true on mac/unix systems with a unicode locale, @@ -82,6 +84,8 @@ The base URL of the npm registry. When set to true, npm uses unicode characters in the tree output. When false, it uses ascii characters instead of unicode glyphs. + + #### `otp` * Default: null @@ -93,6 +97,8 @@ when publishing or changing package permissions with `npm access`. If not set, and a registry response fails with a challenge for a one-time password, npm will prompt on the command line for one. + + ### See Also * [package spec](/cli/v9/using-npm/package-spec) diff --git a/content/cli/v9/commands/npm-stars.md b/content/cli/v9/commands/npm-stars.md index 2c2d4a35249..544884b38c1 100644 --- a/content/cli/v9/commands/npm-stars.md +++ b/content/cli/v9/commands/npm-stars.md @@ -60,6 +60,8 @@ you will most certainly enjoy this command. The base URL of the npm registry. + + ### See Also * [npm star](/cli/v9/commands/npm-star) diff --git a/content/cli/v9/commands/npm-start.md b/content/cli/v9/commands/npm-start.md index 396ba469e85..c5ed4331b0f 100644 --- a/content/cli/v9/commands/npm-start.md +++ b/content/cli/v9/commands/npm-start.md @@ -90,6 +90,8 @@ Note that commands explicitly intended to run a particular script, such as will still run their intended script if `ignore-scripts` is set, but they will *not* run any pre- or post-scripts. + + #### `script-shell` * Default: '/bin/sh' on POSIX systems, 'cmd.exe' on Windows @@ -98,6 +100,8 @@ will *not* run any pre- or post-scripts. The shell to use for scripts run with the `npm exec`, `npm run` and `npm init ` commands. + + ### See Also * [npm run-script](/cli/v9/commands/npm-run-script) diff --git a/content/cli/v9/commands/npm-stop.md b/content/cli/v9/commands/npm-stop.md index c714706899a..8bb5c1ba327 100644 --- a/content/cli/v9/commands/npm-stop.md +++ b/content/cli/v9/commands/npm-stop.md @@ -83,6 +83,8 @@ Note that commands explicitly intended to run a particular script, such as will still run their intended script if `ignore-scripts` is set, but they will *not* run any pre- or post-scripts. + + #### `script-shell` * Default: '/bin/sh' on POSIX systems, 'cmd.exe' on Windows @@ -91,6 +93,8 @@ will *not* run any pre- or post-scripts. The shell to use for scripts run with the `npm exec`, `npm run` and `npm init ` commands. + + ### See Also * [npm run-script](/cli/v9/commands/npm-run-script) diff --git a/content/cli/v9/commands/npm-team.md b/content/cli/v9/commands/npm-team.md index bbace1d1189..710ff9ee5db 100644 --- a/content/cli/v9/commands/npm-team.md +++ b/content/cli/v9/commands/npm-team.md @@ -140,6 +140,8 @@ use the `npm access` command to grant or revoke the appropriate permissions. The base URL of the npm registry. + + #### `otp` * Default: null @@ -151,6 +153,8 @@ when publishing or changing package permissions with `npm access`. If not set, and a registry response fails with a challenge for a one-time password, npm will prompt on the command line for one. + + #### `parseable` * Default: false @@ -159,6 +163,8 @@ password, npm will prompt on the command line for one. Output parseable results from commands that write to standard output. For `npm search`, this will be tab-separated table format. + + #### `json` * Default: false @@ -171,6 +177,8 @@ Whether or not to output JSON data, rather than the normal output. Not supported by all npm commands. + + ### See Also * [npm access](/cli/v9/commands/npm-access) diff --git a/content/cli/v9/commands/npm-test.md b/content/cli/v9/commands/npm-test.md index 24ee750fa51..b398047260e 100644 --- a/content/cli/v9/commands/npm-test.md +++ b/content/cli/v9/commands/npm-test.md @@ -80,6 +80,8 @@ Note that commands explicitly intended to run a particular script, such as will still run their intended script if `ignore-scripts` is set, but they will *not* run any pre- or post-scripts. + + #### `script-shell` * Default: '/bin/sh' on POSIX systems, 'cmd.exe' on Windows @@ -88,6 +90,8 @@ will *not* run any pre- or post-scripts. The shell to use for scripts run with the `npm exec`, `npm run` and `npm init ` commands. + + ### See Also * [npm run-script](/cli/v9/commands/npm-run-script) diff --git a/content/cli/v9/commands/npm-token.md b/content/cli/v9/commands/npm-token.md index bb45aa76260..ff1baa08acc 100644 --- a/content/cli/v9/commands/npm-token.md +++ b/content/cli/v9/commands/npm-token.md @@ -116,6 +116,8 @@ This lets you list, create and revoke authentication tokens. This is used to mark a token as unable to publish when configuring limited access tokens with the `npm token create` command. + + #### `cidr` * Default: null @@ -124,6 +126,8 @@ access tokens with the `npm token create` command. This is a list of CIDR address to be used when configuring limited access tokens with the `npm token create` command. + + #### `registry` * Default: "https://registry.npmjs.org/" @@ -131,6 +135,8 @@ tokens with the `npm token create` command. The base URL of the npm registry. + + #### `otp` * Default: null @@ -142,6 +148,8 @@ when publishing or changing package permissions with `npm access`. If not set, and a registry response fails with a challenge for a one-time password, npm will prompt on the command line for one. + + ### See Also * [npm adduser](/cli/v9/commands/npm-adduser) diff --git a/content/cli/v9/commands/npm-uninstall.md b/content/cli/v9/commands/npm-uninstall.md index 30f1776f733..aad479cb4eb 100644 --- a/content/cli/v9/commands/npm-uninstall.md +++ b/content/cli/v9/commands/npm-uninstall.md @@ -99,6 +99,24 @@ When used with the `npm rm` command, removes the dependency from Will also prevent writing to `package-lock.json` if set to `false`. + + +#### `global` + +* Default: false +* Type: Boolean + +Operates in "global" mode, so that packages are installed into the `prefix` +folder instead of the current working directory. See +[folders](/cli/v9/configuring-npm/folders) for more on the differences in behavior. + +* packages are installed into the `{prefix}/lib/node_modules` folder, instead + of the current working directory. +* bin files are linked to `{prefix}/bin` +* man pages are linked to `{prefix}/share/man` + + + #### `workspace` * Default: @@ -161,6 +179,8 @@ When set file: protocol dependencies will be packed and installed as regular dependencies instead of creating a symlink. This option has no effect on workspaces. + + ### See Also * [npm prune](/cli/v9/commands/npm-prune) diff --git a/content/cli/v9/commands/npm-unpublish.md b/content/cli/v9/commands/npm-unpublish.md index 86fa5226e73..7b59035cbea 100644 --- a/content/cli/v9/commands/npm-unpublish.md +++ b/content/cli/v9/commands/npm-unpublish.md @@ -83,6 +83,8 @@ commands that modify your local installation, eg, `install`, `update`, Note: This is NOT honored by other network related commands, eg `dist-tags`, `owner`, etc. + + #### `force` * Default: false @@ -109,6 +111,8 @@ mistakes, unnecessary performance degradation, and malicious input. If you don't have a clear idea of what you want to do, it is strongly recommended that you do not use this option! + + #### `workspace` * Default: diff --git a/content/cli/v9/commands/npm-unstar.md b/content/cli/v9/commands/npm-unstar.md index df66c19ad84..107f1878744 100644 --- a/content/cli/v9/commands/npm-unstar.md +++ b/content/cli/v9/commands/npm-unstar.md @@ -69,6 +69,8 @@ You can see all your starred packages using [`npm stars`](/cli/v9/commands/npm-s The base URL of the npm registry. + + #### `unicode` * Default: false on windows, true on mac/unix systems with a unicode locale, @@ -78,6 +80,8 @@ The base URL of the npm registry. When set to true, npm uses unicode characters in the tree output. When false, it uses ascii characters instead of unicode glyphs. + + #### `otp` * Default: null @@ -89,6 +93,8 @@ when publishing or changing package permissions with `npm access`. If not set, and a registry response fails with a challenge for a one-time password, npm will prompt on the command line for one. + + ### See Also * [npm star](/cli/v9/commands/npm-star) diff --git a/content/cli/v9/commands/npm-update.md b/content/cli/v9/commands/npm-update.md index bc621cb147c..00a65feb3f6 100644 --- a/content/cli/v9/commands/npm-update.md +++ b/content/cli/v9/commands/npm-update.md @@ -200,6 +200,8 @@ When used with the `npm rm` command, removes the dependency from Will also prevent writing to `package-lock.json` if set to `false`. + + #### `global` * Default: false @@ -214,6 +216,8 @@ folder instead of the current working directory. See * bin files are linked to `{prefix}/bin` * man pages are linked to `{prefix}/share/man` + + #### `install-strategy` * Default: "hoisted" @@ -226,6 +230,8 @@ place, no hoisting. shallow (formerly --global-style) only install direct deps at top-level. linked: (experimental) install in node_modules/.store, link in place, unhoisted. + + #### `legacy-bundling` * Default: false @@ -238,6 +244,8 @@ the same manner that they are depended on. This may cause very deep directory structures and duplicate package installs as there is no de-duplicating. Sets `--install-strategy=nested`. + + #### `global-style` * Default: false @@ -248,6 +256,8 @@ de-duplicating. Sets `--install-strategy=nested`. Only install direct dependencies in the top level `node_modules`, but hoist on deeper dependencies. Sets `--install-strategy=shallow`. + + #### `omit` * Default: 'dev' if the `NODE_ENV` environment variable is set to @@ -266,6 +276,8 @@ it will be included. If the resulting omit list includes `'dev'`, then the `NODE_ENV` environment variable will be set to `'production'` for all lifecycle scripts. + + #### `strict-peer-deps` * Default: false @@ -285,6 +297,8 @@ When such an override is performed, a warning is printed, explaining the conflict and the packages involved. If `--strict-peer-deps` is set, then this warning is treated as a failure. + + #### `package-lock` * Default: true @@ -293,7 +307,7 @@ this warning is treated as a failure. If set to false, then ignore `package-lock.json` files when installing. This will also prevent _writing_ `package-lock.json` if `save` is true. -This configuration does not affect `npm ci`. + #### `foreground-scripts` @@ -307,6 +321,8 @@ input, output, and error with the main npm process. Note that this will generally make installs run slower, and be much noisier, but can be useful for debugging. + + #### `ignore-scripts` * Default: false @@ -319,6 +335,8 @@ Note that commands explicitly intended to run a particular script, such as will still run their intended script if `ignore-scripts` is set, but they will *not* run any pre- or post-scripts. + + #### `audit` * Default: true @@ -329,6 +347,8 @@ default registry and all registries configured for scopes. See the documentation for [`npm audit`](/cli/v9/commands/npm-audit) for details on what is submitted. + + #### `bin-links` * Default: true @@ -341,6 +361,8 @@ Set to false to have it not do this. This can be used to work around the fact that some file systems don't support symlinks, even on ostensibly Unix systems. + + #### `fund` * Default: true @@ -350,6 +372,8 @@ When "true" displays the message at the end of each `npm install` acknowledging the number of dependencies looking for funding. See [`npm fund`](/cli/v9/commands/npm-fund) for details. + + #### `dry-run` * Default: false @@ -363,6 +387,8 @@ commands that modify your local installation, eg, `install`, `update`, Note: This is NOT honored by other network related commands, eg `dist-tags`, `owner`, etc. + + #### `workspace` * Default: @@ -425,6 +451,8 @@ When set file: protocol dependencies will be packed and installed as regular dependencies instead of creating a symlink. This option has no effect on workspaces. + + ### See Also * [npm install](/cli/v9/commands/npm-install) diff --git a/content/cli/v9/commands/npm-version.md b/content/cli/v9/commands/npm-version.md index 8d709e38f35..5bcf1be7577 100644 --- a/content/cli/v9/commands/npm-version.md +++ b/content/cli/v9/commands/npm-version.md @@ -53,6 +53,8 @@ alias: verison Prevents throwing an error when `npm version` is used to set the new version to the same value as the current version. + + #### `commit-hooks` * Default: true @@ -60,6 +62,8 @@ to the same value as the current version. Run git commit hooks when using the `npm version` command. + + #### `git-tag-version` * Default: true @@ -68,6 +72,8 @@ Run git commit hooks when using the `npm version` command. Tag the commit when using the `npm version` command. Setting this to false results in no commit being made at all. + + #### `json` * Default: false @@ -80,6 +86,8 @@ Whether or not to output JSON data, rather than the normal output. Not supported by all npm commands. + + #### `preid` * Default: "" @@ -88,6 +96,8 @@ Not supported by all npm commands. The "prerelease identifier" to use as a prefix for the "prerelease" part of a semver. Like the `rc` in `1.2.0-rc.8`. + + #### `sign-git-tag` * Default: false @@ -99,6 +109,8 @@ If set to true, then the `npm version` command will tag the version using Note that git requires you to have set up GPG keys in your git configs for this to work properly. + + #### `workspace` * Default: @@ -147,6 +159,8 @@ This value is not exported to the environment for child processes. If set to true, the npm cli will run an update after operations that may possibly change the workspaces installed to the `node_modules` folder. + + #### `include-workspace-root` * Default: false diff --git a/content/cli/v9/commands/npm-view.md b/content/cli/v9/commands/npm-view.md index 564ae5a6446..19ebb7ca491 100644 --- a/content/cli/v9/commands/npm-view.md +++ b/content/cli/v9/commands/npm-view.md @@ -145,6 +145,8 @@ Whether or not to output JSON data, rather than the normal output. Not supported by all npm commands. + + #### `workspace` * Default: diff --git a/content/cli/v9/commands/npm-whoami.md b/content/cli/v9/commands/npm-whoami.md index 6b26c204318..1f591b7f203 100644 --- a/content/cli/v9/commands/npm-whoami.md +++ b/content/cli/v9/commands/npm-whoami.md @@ -63,6 +63,8 @@ If logged into a registry that uses Basic Auth, then simply print the The base URL of the npm registry. + + ### See Also * [npm config](/cli/v9/commands/npm-config) diff --git a/content/cli/v9/commands/npm.md b/content/cli/v9/commands/npm.md index 18825a93381..6fef8a90749 100644 --- a/content/cli/v9/commands/npm.md +++ b/content/cli/v9/commands/npm.md @@ -31,7 +31,7 @@ Note: This command is unaware of workspaces. ### Version -9.6.7 +9.7.1 ### Description diff --git a/content/cli/v9/using-npm/changelog.md b/content/cli/v9/using-npm/changelog.md index e362ba0a5af..deb7fcea7a3 100644 --- a/content/cli/v9/using-npm/changelog.md +++ b/content/cli/v9/using-npm/changelog.md @@ -17,6 +17,45 @@ redirect_from: # Changelog +## [9.7.1](https://github.com/npm/cli/compare/v9.7.0...v9.7.1) (2023-06-06) + +### Dependencies + +* [`7467ff6`](https://github.com/npm/cli/commit/7467ff680a3fffbf6b974c5779229c2e54e8515f) [#6518](https://github.com/npm/cli/pull/6518) `@npmcli/package-json@3.1.1`, `@npmcli/git@4.1.0` + +## [9.7.0](https://github.com/npm/cli/compare/v9.6.7...v9.7.0) (2023-05-31) + +### Features + +* [`a63a6d8`](https://github.com/npm/cli/commit/a63a6d8d6fd339d504ab94c0364ce7ee3d4e3775) [#6490](https://github.com/npm/cli/pull/6490) add provenanceFile option for libnpmpublish (@bdehamer) +* [`2a8f4f2`](https://github.com/npm/cli/commit/2a8f4f203a47f60cc96312934927419a7d83c2f1) [#6490](https://github.com/npm/cli/pull/6490) add new exclusive config item publish-file (@wraithgar) +* [`361e194`](https://github.com/npm/cli/commit/361e1945b5a34230690ccf37a14687d021e1dbce) [#6483](https://github.com/npm/cli/pull/6483) implement flag --prefer-dedupe for `npm install` (#6483) (@m4rch3n1ng) + +### Bug Fixes + +* [`38eb39b`](https://github.com/npm/cli/commit/38eb39b8068ab4e3b0a544234ac5df804469e3d8) [#6514](https://github.com/npm/cli/pull/6514) strip ansi characters from search results (#6514) (@wraithgar) +* [`4b5ccfc`](https://github.com/npm/cli/commit/4b5ccfce376378521cb743bfbd32a724340e75b8) [#6477](https://github.com/npm/cli/pull/6477) make usage and completion static functions (#6477) (@lukekarrys) +* [`4f39e8c`](https://github.com/npm/cli/commit/4f39e8c983e652b66f9c342b93694a29dc5a0b92) [#6479](https://github.com/npm/cli/pull/6479) refactor engines validation to lint syntax (#6479) (@lukekarrys) +* [`f3cfe12`](https://github.com/npm/cli/commit/f3cfe129b2602e8f454acac572a51d8adc6c1111) [#6482](https://github.com/npm/cli/pull/6482) remove unused lib/npm relics (#6482) (@lukekarrys) +* [`87de0c7`](https://github.com/npm/cli/commit/87de0c79cca0788d728095cfb537447745bada13) [#6472](https://github.com/npm/cli/pull/6472) move explore command to @npmcli/package-json (@wraithgar) +* [`636e29e`](https://github.com/npm/cli/commit/636e29e2c887e7f197977e3215642b6778eb59de) [#6472](https://github.com/npm/cli/pull/6472) move to @npmcli/package-json where possible (@wraithgar) +* [`37cc797`](https://github.com/npm/cli/commit/37cc797341100cd0a8371e80b25b938f166c9d71) [#6418](https://github.com/npm/cli/pull/6418) retrieve registry keys via TUF (#6418) (@bdehamer) + +### Documentation + +* [`83cd5bd`](https://github.com/npm/cli/commit/83cd5bd68aa6255c598b8dd3a544f16129885aee) [#6480](https://github.com/npm/cli/pull/6480) add global option for uninstall (#6480) (@m4rch3n1ng) +* [`0400ce3`](https://github.com/npm/cli/commit/0400ce3c9d7af792c9931f1ba365e25b899833b6) [#6481](https://github.com/npm/cli/pull/6481) add cli params to `npm set`, `npm get` (#6481) (@m4rch3n1ng) +* [`c3638ce`](https://github.com/npm/cli/commit/c3638ce613364aff50fedb493a97f1ee60211158) [#6468](https://github.com/npm/cli/pull/6468) remove `package-lock` option for `npm ci` (#6468) (@m4rch3n1ng) + +### Dependencies + +* [`060d587`](https://github.com/npm/cli/commit/060d587f6f5a60db0c02c319c1df1a11c146442f) `chalk@5.2.0`, `npm-audit-report@5.0.0` +* [`fc52ca8`](https://github.com/npm/cli/commit/fc52ca8c0bd2aeb4e3885e5395ec647628bdd87c) [#6472](https://github.com/npm/cli/pull/6472) remove read-package-json-fast +* [`3238aa7`](https://github.com/npm/cli/commit/3238aa78905bc90b404dc3075ec810884f8fd1c8) [#6472](https://github.com/npm/cli/pull/6472) remove read-package-json +* [Workspace](https://github.com/npm/cli/releases/tag/config-v6.2.0): `@npmcli/config@6.2.0` +* [Workspace](https://github.com/npm/cli/releases/tag/libnpmexec-v6.0.0): `libnpmexec@6.0.0` +* [Workspace](https://github.com/npm/cli/releases/tag/libnpmpublish-v7.3.0): `libnpmpublish@7.3.0` + ## [9.6.7](https://github.com/npm/cli/compare/v9.6.6...v9.6.7) (2023-05-17) ### Bug Fixes diff --git a/content/cli/v9/using-npm/config.md b/content/cli/v9/using-npm/config.md index c0c73c02f52..68f7b7b4cc0 100644 --- a/content/cli/v9/using-npm/config.md +++ b/content/cli/v9/using-npm/config.md @@ -149,6 +149,8 @@ Warning: This should generally not be set via a command-line option. It is safer to use a registry-provided authentication bearer token stored in the ~/.npmrc file by running `npm login`. + + #### `access` * Default: 'public' for new packages, existing packages it will not change the @@ -165,6 +167,8 @@ packages. Specifying a value of `restricted` or `public` during publish will change the access for an existing package the same way that `npm access set status` would. + + #### `all` * Default: false @@ -174,6 +178,8 @@ When running `npm outdated` and `npm ls`, setting `--all` will show all outdated or installed packages, rather than only those directly depended upon by the current project. + + #### `allow-same-version` * Default: false @@ -182,6 +188,8 @@ upon by the current project. Prevents throwing an error when `npm version` is used to set the new version to the same value as the current version. + + #### `audit` * Default: true @@ -192,6 +200,8 @@ default registry and all registries configured for scopes. See the documentation for [`npm audit`](/cli/v9/commands/npm-audit) for details on what is submitted. + + #### `audit-level` * Default: null @@ -200,6 +210,8 @@ submitted. The minimum level of vulnerability for `npm audit` to exit with a non-zero exit code. + + #### `auth-type` * Default: "web" @@ -208,6 +220,8 @@ exit code. What authentication strategy to use with `login`. Note that if an `otp` config is given, this value will always be set to `legacy`. + + #### `before` * Default: null @@ -223,6 +237,8 @@ If the requested version is a `dist-tag` and the given tag does not pass the will be used. For example, `foo@latest` might install `foo@1.2` even though `latest` is `2.0`. + + #### `bin-links` * Default: true @@ -235,6 +251,8 @@ Set to false to have it not do this. This can be used to work around the fact that some file systems don't support symlinks, even on ostensibly Unix systems. + + #### `browser` * Default: OS X: `"open"`, Windows: `"start"`, Others: `"xdg-open"` @@ -247,6 +265,8 @@ terminal. Set to `true` to use default system URL opener. + + #### `ca` * Default: null @@ -273,6 +293,8 @@ ca[]="..." See also the `strict-ssl` config. + + #### `cache` * Default: Windows: `%LocalAppData%\npm-cache`, Posix: `~/.npm` @@ -280,6 +302,8 @@ See also the `strict-ssl` config. The location of npm's cache directory. + + #### `cafile` * Default: null @@ -289,6 +313,8 @@ A path to a file containing one or multiple Certificate Authority signing certificates. Similar to the `ca` setting, but allows for multiple CA's, as well as for the CA information to be stored in a file on disk. + + #### `call` * Default: "" @@ -302,6 +328,7 @@ npm exec --package yo --package generator-node --call "yo node" ``` + #### `cidr` * Default: null @@ -310,6 +337,8 @@ npm exec --package yo --package generator-node --call "yo node" This is a list of CIDR address to be used when configuring limited access tokens with the `npm token create` command. + + #### `color` * Default: true unless the NO_COLOR environ is set to something other than '0' @@ -318,6 +347,8 @@ tokens with the `npm token create` command. If false, never shows colors. If `"always"` then always shows colors. If true, then only prints color codes for tty file descriptors. + + #### `commit-hooks` * Default: true @@ -325,6 +356,8 @@ true, then only prints color codes for tty file descriptors. Run git commit hooks when using the `npm version` command. + + #### `depth` * Default: `Infinity` if `--all` is set, otherwise `1` @@ -335,6 +368,8 @@ The depth to go when recursing packages for `npm ls`. If not set, `npm ls` will show only the immediate dependencies of the root project. If `--all` is set, then npm will show all dependencies by default. + + #### `description` * Default: true @@ -342,6 +377,8 @@ project. If `--all` is set, then npm will show all dependencies by default. Show the description in `npm search` + + #### `diff` * Default: @@ -349,6 +386,8 @@ Show the description in `npm search` Define arguments to compare in `npm diff`. + + #### `diff-dst-prefix` * Default: "b/" @@ -356,6 +395,8 @@ Define arguments to compare in `npm diff`. Destination prefix to be used in `npm diff` output. + + #### `diff-ignore-all-space` * Default: false @@ -363,6 +404,8 @@ Destination prefix to be used in `npm diff` output. Ignore whitespace when comparing lines in `npm diff`. + + #### `diff-name-only` * Default: false @@ -370,6 +413,8 @@ Ignore whitespace when comparing lines in `npm diff`. Prints only filenames when using `npm diff`. + + #### `diff-no-prefix` * Default: false @@ -380,6 +425,8 @@ Do not show any source or destination prefix in `npm diff` output. Note: this causes `npm diff` to ignore the `--diff-src-prefix` and `--diff-dst-prefix` configs. + + #### `diff-src-prefix` * Default: "a/" @@ -387,6 +434,8 @@ Note: this causes `npm diff` to ignore the `--diff-src-prefix` and Source prefix to be used in `npm diff` output. + + #### `diff-text` * Default: false @@ -394,6 +443,8 @@ Source prefix to be used in `npm diff` output. Treat all files as text in `npm diff`. + + #### `diff-unified` * Default: 3 @@ -401,6 +452,8 @@ Treat all files as text in `npm diff`. The number of lines of context to print in `npm diff`. + + #### `dry-run` * Default: false @@ -414,6 +467,8 @@ commands that modify your local installation, eg, `install`, `update`, Note: This is NOT honored by other network related commands, eg `dist-tags`, `owner`, etc. + + #### `editor` * Default: The EDITOR or VISUAL environment variables, or @@ -422,6 +477,8 @@ Note: This is NOT honored by other network related commands, eg `dist-tags`, The command to run for `npm edit` and `npm config edit`. + + #### `engine-strict` * Default: false @@ -433,6 +490,8 @@ Node.js version. This can be overridden by setting the `--force` flag. + + #### `fetch-retries` * Default: 2 @@ -444,6 +503,8 @@ from the registry. npm will retry idempotent read requests to the registry in the case of network failures or 5xx HTTP errors. + + #### `fetch-retry-factor` * Default: 10 @@ -451,6 +512,8 @@ network failures or 5xx HTTP errors. The "factor" config for the `retry` module to use when fetching packages. + + #### `fetch-retry-maxtimeout` * Default: 60000 (1 minute) @@ -459,6 +522,8 @@ The "factor" config for the `retry` module to use when fetching packages. The "maxTimeout" config for the `retry` module to use when fetching packages. + + #### `fetch-retry-mintimeout` * Default: 10000 (10 seconds) @@ -467,6 +532,8 @@ packages. The "minTimeout" config for the `retry` module to use when fetching packages. + + #### `fetch-timeout` * Default: 300000 (5 minutes) @@ -474,6 +541,8 @@ packages. The maximum amount of time to wait for HTTP requests to complete. + + #### `force` * Default: false @@ -500,6 +569,8 @@ mistakes, unnecessary performance degradation, and malicious input. If you don't have a clear idea of what you want to do, it is strongly recommended that you do not use this option! + + #### `foreground-scripts` * Default: false @@ -512,6 +583,8 @@ input, output, and error with the main npm process. Note that this will generally make installs run slower, and be much noisier, but can be useful for debugging. + + #### `format-package-lock` * Default: true @@ -520,6 +593,8 @@ but can be useful for debugging. Format `package-lock.json` or `npm-shrinkwrap.json` as a human readable file. + + #### `fund` * Default: true @@ -529,6 +604,8 @@ When "true" displays the message at the end of each `npm install` acknowledging the number of dependencies looking for funding. See [`npm fund`](/cli/v9/commands/npm-fund) for details. + + #### `git` * Default: "git" @@ -537,6 +614,8 @@ fund`](/cli/v9/commands/npm-fund) for details. The command to use for git commands. If git is installed on the computer, but is not in the `PATH`, then set this to the full path to the git binary. + + #### `git-tag-version` * Default: true @@ -545,6 +624,8 @@ but is not in the `PATH`, then set this to the full path to the git binary. Tag the commit when using the `npm version` command. Setting this to false results in no commit being made at all. + + #### `global` * Default: false @@ -559,6 +640,8 @@ folder instead of the current working directory. See * bin files are linked to `{prefix}/bin` * man pages are linked to `{prefix}/share/man` + + #### `globalconfig` * Default: The global --prefix setting plus 'etc/npmrc'. For example, @@ -567,6 +650,8 @@ folder instead of the current working directory. See The config file to read for global config options. + + #### `heading` * Default: "npm" @@ -574,6 +659,8 @@ The config file to read for global config options. The string that starts all the debugging log output. + + #### `https-proxy` * Default: null @@ -584,6 +671,8 @@ A proxy to use for outgoing https requests. If the `HTTPS_PROXY` or proxy settings will be honored by the underlying `make-fetch-happen` library. + + #### `if-present` * Default: false @@ -610,6 +699,8 @@ Note that commands explicitly intended to run a particular script, such as will still run their intended script if `ignore-scripts` is set, but they will *not* run any pre- or post-scripts. + + #### `include` * Default: @@ -622,6 +713,8 @@ This is the inverse of `--omit=`. Dependency types specified in `--include` will not be omitted, regardless of the order in which omit/include are specified on the command-line. + + #### `include-staged` * Default: false @@ -632,6 +725,8 @@ Allow installing "staged" published packages, as defined by [npm RFC PR This is experimental, and not implemented by the npm public registry. + + #### `include-workspace-root` * Default: false @@ -652,6 +747,8 @@ This value is not exported to the environment for child processes. The value `npm init` should use by default for the package author's email. + + #### `init-author-name` * Default: "" @@ -659,6 +756,8 @@ The value `npm init` should use by default for the package author's email. The value `npm init` should use by default for the package author's name. + + #### `init-author-url` * Default: "" @@ -667,6 +766,8 @@ The value `npm init` should use by default for the package author's name. The value `npm init` should use by default for the package author's homepage. + + #### `init-license` * Default: "ISC" @@ -674,6 +775,8 @@ homepage. The value `npm init` should use by default for the package license. + + #### `init-module` * Default: "~/.npm-init.js" @@ -684,6 +787,8 @@ documentation for the [init-package-json](https://github.com/npm/init-package-json) module for more information, or [npm init](/cli/v9/commands/npm-init). + + #### `init-version` * Default: "1.0.0" @@ -692,6 +797,8 @@ more information, or [npm init](/cli/v9/commands/npm-init). The value that `npm init` should use by default for the package version number, if not already set in package.json. + + #### `install-links` * Default: false @@ -701,6 +808,8 @@ When set file: protocol dependencies will be packed and installed as regular dependencies instead of creating a symlink. This option has no effect on workspaces. + + #### `install-strategy` * Default: "hoisted" @@ -713,6 +822,8 @@ place, no hoisting. shallow (formerly --global-style) only install direct deps at top-level. linked: (experimental) install in node_modules/.store, link in place, unhoisted. + + #### `json` * Default: false @@ -725,6 +836,8 @@ Whether or not to output JSON data, rather than the normal output. Not supported by all npm commands. + + #### `legacy-peer-deps` * Default: false @@ -743,6 +856,8 @@ This differs from `--omit=peer`, in that `--omit=peer` will avoid unpacking Use of `legacy-peer-deps` is not recommended, as it will not enforce the `peerDependencies` contract that meta-dependencies may rely on. + + #### `link` * Default: false @@ -750,6 +865,8 @@ Use of `legacy-peer-deps` is not recommended, as it will not enforce the Used with `npm ls`, limiting output to only those packages that are linked. + + #### `local-address` * Default: null @@ -758,6 +875,8 @@ Used with `npm ls`, limiting output to only those packages that are linked. The IP address of the local interface to use when making connections to the npm registry. Must be IPv4 in versions of Node prior to 0.12. + + #### `location` * Default: "user" unless `--global` is passed, which will also set this value @@ -775,6 +894,8 @@ instead of the current working directory. See * bin files are linked to `{prefix}/bin` * man pages are linked to `{prefix}/share/man` + + #### `lockfile-version` * Default: Version 3 if no lockfile, auto-converting v1 lockfiles to v3, @@ -797,6 +918,8 @@ determinism and interoperability, at the expense of more bytes on disk. disk than lockfile version 2, but not interoperable with older npm versions. Ideal if all users are on npm version 7 and higher. + + #### `loglevel` * Default: "notice" @@ -811,6 +934,8 @@ Any logs of a higher level than the setting are shown. The default is See also the `foreground-scripts` config. + + #### `logs-dir` * Default: A directory named `_logs` inside the cache @@ -819,6 +944,8 @@ See also the `foreground-scripts` config. The location of npm's log directory. See [`npm logging`](/cli/v9/using-npm/logging) for more information. + + #### `logs-max` * Default: 10 @@ -828,6 +955,8 @@ The maximum number of log files to store. If set to 0, no log files will be written for the current run. + + #### `long` * Default: false @@ -835,6 +964,8 @@ If set to 0, no log files will be written for the current run. Show extended information in `ls`, `search`, and `help-search`. + + #### `maxsockets` * Default: 15 @@ -843,6 +974,8 @@ Show extended information in `ls`, `search`, and `help-search`. The maximum number of connections to use per origin (protocol/host/port combination). + + #### `message` * Default: "%s" @@ -852,6 +985,8 @@ Commit message which is used by `npm version` when creating version commit. Any "%s" in the message will be replaced with the version number. + + #### `node-options` * Default: null @@ -861,6 +996,8 @@ Options to pass through to Node.js via the `NODE_OPTIONS` environment variable. This does not impact how npm itself is executed but it does impact how lifecycle scripts are called. + + #### `noproxy` * Default: The value of the NO_PROXY environment variable @@ -870,6 +1007,8 @@ Domain extensions that should bypass any proxies. Also accepts a comma-delimited string. + + #### `offline` * Default: false @@ -878,6 +1017,8 @@ Also accepts a comma-delimited string. Force offline mode: no network requests will be done during install. To allow the CLI to fill in missing cache data, see `--prefer-offline`. + + #### `omit` * Default: 'dev' if the `NODE_ENV` environment variable is set to @@ -896,6 +1037,8 @@ it will be included. If the resulting omit list includes `'dev'`, then the `NODE_ENV` environment variable will be set to `'production'` for all lifecycle scripts. + + #### `omit-lockfile-registry-resolved` * Default: false @@ -906,6 +1049,8 @@ registry dependencies. Subsequent installs will need to resolve tarball endpoints with the configured registry, likely resulting in a longer install time. + + #### `otp` * Default: null @@ -917,6 +1062,8 @@ when publishing or changing package permissions with `npm access`. If not set, and a registry response fails with a challenge for a one-time password, npm will prompt on the command line for one. + + #### `pack-destination` * Default: "." @@ -924,6 +1071,8 @@ password, npm will prompt on the command line for one. Directory in which `npm pack` will save tarballs. + + #### `package` * Default: @@ -931,6 +1080,8 @@ Directory in which `npm pack` will save tarballs. The package or packages to install for [`npm exec`](/cli/v9/commands/npm-exec) + + #### `package-lock` * Default: true @@ -939,7 +1090,7 @@ The package or packages to install for [`npm exec`](/cli/v9/commands/npm-exec) If set to false, then ignore `package-lock.json` files when installing. This will also prevent _writing_ `package-lock.json` if `save` is true. -This configuration does not affect `npm ci`. + #### `package-lock-only` @@ -955,6 +1106,8 @@ instead of checking `node_modules` and downloading dependencies. For `list` this means the output will be based on the tree described by the `package-lock.json`, rather than the contents of `node_modules`. + + #### `parseable` * Default: false @@ -963,6 +1116,18 @@ For `list` this means the output will be based on the tree described by the Output parseable results from commands that write to standard output. For `npm search`, this will be tab-separated table format. + + +#### `prefer-dedupe` + +* Default: false +* Type: Boolean + +Prefer to deduplicate packages if possible, rather than choosing a newer +version of a dependency. + + + #### `prefer-offline` * Default: false @@ -972,6 +1137,8 @@ If true, staleness checks for cached data will be bypassed, but missing data will be requested from the server. To force full offline mode, use `--offline`. + + #### `prefer-online` * Default: false @@ -980,6 +1147,8 @@ will be requested from the server. To force full offline mode, use If true, staleness checks for cached data will be forced, making the CLI look for updates immediately even for fresh package data. + + #### `prefix` * Default: In global mode, the folder where the node executable is installed. @@ -990,6 +1159,8 @@ look for updates immediately even for fresh package data. The location to install global items. If set on the command line, then it forces non-global commands to run in the specified folder. + + #### `preid` * Default: "" @@ -998,6 +1169,8 @@ forces non-global commands to run in the specified folder. The "prerelease identifier" to use as a prefix for the "prerelease" part of a semver. Like the `rc` in `1.2.0-rc.8`. + + #### `progress` * Default: `true` unless running in a known CI system @@ -1008,6 +1181,8 @@ operations, if `process.stderr` is a TTY. Set to `false` to suppress the progress bar. + + #### `provenance` * Default: false @@ -1016,6 +1191,17 @@ Set to `false` to suppress the progress bar. When publishing from a supported cloud CI/CD system, the package will be publicly linked to where it was built and published from. +This config can not be used with: `provenance-file` + +#### `provenance-file` + +* Default: null +* Type: Path + +When publishing, the provenance bundle at the given path will be used. + +This config can not be used with: `provenance` + #### `proxy` * Default: null @@ -1025,6 +1211,8 @@ A proxy to use for outgoing http requests. If the `HTTP_PROXY` or `http_proxy` environment variables are set, proxy settings will be honored by the underlying `request` library. + + #### `read-only` * Default: false @@ -1033,6 +1221,8 @@ by the underlying `request` library. This is used to mark a token as unable to publish when configuring limited access tokens with the `npm token create` command. + + #### `rebuild-bundle` * Default: true @@ -1040,6 +1230,8 @@ access tokens with the `npm token create` command. Rebuild bundled dependencies after installation. + + #### `registry` * Default: "https://registry.npmjs.org/" @@ -1047,6 +1239,8 @@ Rebuild bundled dependencies after installation. The base URL of the npm registry. + + #### `replace-registry-host` * Default: "npmjs" @@ -1062,6 +1256,8 @@ registry host with the configured host every time. You may also specify a bare hostname (e.g., "registry.npmjs.org"). + + #### `save` * Default: `true` unless when using `npm update` where it defaults to `false` @@ -1074,6 +1270,8 @@ When used with the `npm rm` command, removes the dependency from Will also prevent writing to `package-lock.json` if set to `false`. + + #### `save-bundle` * Default: false @@ -1085,6 +1283,8 @@ If a package would be saved at install time by the use of `--save`, Ignored if `--save-peer` is set, since peerDependencies cannot be bundled. + + #### `save-dev` * Default: false @@ -1092,6 +1292,8 @@ Ignored if `--save-peer` is set, since peerDependencies cannot be bundled. Save installed packages to a package.json file as `devDependencies`. + + #### `save-exact` * Default: false @@ -1100,6 +1302,8 @@ Save installed packages to a package.json file as `devDependencies`. Dependencies saved to package.json will be configured with an exact version rather than using npm's default semver range operator. + + #### `save-optional` * Default: false @@ -1107,6 +1311,8 @@ rather than using npm's default semver range operator. Save installed packages to a package.json file as `optionalDependencies`. + + #### `save-peer` * Default: false @@ -1114,6 +1320,8 @@ Save installed packages to a package.json file as `optionalDependencies`. Save installed packages to a package.json file as `peerDependencies` + + #### `save-prefix` * Default: "^" @@ -1127,6 +1335,8 @@ to `^1.2.3` which allows minor upgrades for that package, but after `npm config set save-prefix='~'` it would be set to `~1.2.3` which only allows patch upgrades. + + #### `save-prod` * Default: false @@ -1139,6 +1349,8 @@ you want to move it to be a non-optional production dependency. This is the default behavior if `--save` is true, and neither `--save-dev` or `--save-optional` are true. + + #### `scope` * Default: the scope of the current project, if any, or "" @@ -1169,6 +1381,7 @@ npm init --scope=@foo --yes ``` + #### `script-shell` * Default: '/bin/sh' on POSIX systems, 'cmd.exe' on Windows @@ -1177,6 +1390,8 @@ npm init --scope=@foo --yes The shell to use for scripts run with the `npm exec`, `npm run` and `npm init ` commands. + + #### `searchexclude` * Default: "" @@ -1184,6 +1399,8 @@ init ` commands. Space-separated options that limit the results from search. + + #### `searchlimit` * Default: 20 @@ -1192,6 +1409,8 @@ Space-separated options that limit the results from search. Number of items to limit search results to. Will not apply at all to legacy searches. + + #### `searchopts` * Default: "" @@ -1199,6 +1418,8 @@ searches. Space-separated options that are always passed to search. + + #### `searchstaleness` * Default: 900 @@ -1207,6 +1428,8 @@ Space-separated options that are always passed to search. The age of the cache, in seconds, before another registry request is made if using legacy search endpoint. + + #### `shell` * Default: SHELL environment variable, or "bash" on Posix, or "cmd.exe" on @@ -1215,6 +1438,8 @@ using legacy search endpoint. The shell to run for the `npm explore` command. + + #### `sign-git-commit` * Default: false @@ -1226,6 +1451,8 @@ version using `-S` to add a signature. Note that git requires you to have set up GPG keys in your git configs for this to work properly. + + #### `sign-git-tag` * Default: false @@ -1237,6 +1464,8 @@ If set to true, then the `npm version` command will tag the version using Note that git requires you to have set up GPG keys in your git configs for this to work properly. + + #### `strict-peer-deps` * Default: false @@ -1256,6 +1485,8 @@ When such an override is performed, a warning is printed, explaining the conflict and the packages involved. If `--strict-peer-deps` is set, then this warning is treated as a failure. + + #### `strict-ssl` * Default: true @@ -1266,6 +1497,8 @@ via https. See also the `ca` config. + + #### `tag` * Default: "latest" @@ -1280,6 +1513,8 @@ command, if no explicit tag is given. When used by the `npm diff` command, this is the tag used to fetch the tarball that will be compared with the local files by default. + + #### `tag-version-prefix` * Default: "v" @@ -1293,6 +1528,8 @@ Because other tools may rely on the convention that npm version tags look like `v1.0.0`, _only use this property if it is absolutely necessary_. In particular, use care when overriding this setting for public packages. + + #### `timing` * Default: false @@ -1307,6 +1544,8 @@ You can quickly view it with this [json](https://npm.im/json) command line: Timing information will also be reported in the terminal. To suppress this while still writing the timing file, use `--silent`. + + #### `umask` * Default: 0 @@ -1327,6 +1566,8 @@ Thus, the effective default umask value on most POSIX systems is 0o22, meaning that folders and executables are created with a mode of 0o755 and other files are created with a mode of 0o644. + + #### `unicode` * Default: false on windows, true on mac/unix systems with a unicode locale, @@ -1336,6 +1577,8 @@ other files are created with a mode of 0o644. When set to true, npm uses unicode characters in the tree output. When false, it uses ascii characters instead of unicode glyphs. + + #### `update-notifier` * Default: true @@ -1344,6 +1587,8 @@ false, it uses ascii characters instead of unicode glyphs. Set to false to suppress the update notification when using an older version of npm than the latest. + + #### `usage` * Default: false @@ -1351,6 +1596,8 @@ of npm than the latest. Show short usage output about the command specified. + + #### `user-agent` * Default: "npm/{npm-version} node/{node-version} {platform} {arch} @@ -1369,6 +1616,8 @@ their actual counterparts: * `{ci}` - The value of the `ci-name` config, if set, prefixed with `ci/`, or an empty string if `ci-name` is empty. + + #### `userconfig` * Default: "~/.npmrc" @@ -1380,6 +1629,8 @@ This may be overridden by the `npm_config_userconfig` environment variable or the `--userconfig` command line option, but may _not_ be overridden by settings in the `globalconfig` file. + + #### `version` * Default: false @@ -1389,6 +1640,8 @@ If true, output the npm version and exit successfully. Only relevant when specified explicitly on the command line. + + #### `versions` * Default: false @@ -1400,6 +1653,8 @@ exists, and exit successfully. Only relevant when specified explicitly on the command line. + + #### `viewer` * Default: "man" on Posix, "browser" on Windows @@ -1409,6 +1664,8 @@ The program to use to view help content. Set to `"browser"` to view html help content in the default web browser. + + #### `which` * Default: null @@ -1416,6 +1673,8 @@ Set to `"browser"` to view html help content in the default web browser. If there are multiple funding sources, which 1-indexed source URL to open. + + #### `workspace` * Default: @@ -1464,6 +1723,8 @@ This value is not exported to the environment for child processes. If set to true, the npm cli will run an update after operations that may possibly change the workspaces installed to the `node_modules` folder. + + #### `yes` * Default: null @@ -1472,6 +1733,8 @@ possibly change the workspaces installed to the `node_modules` folder. Automatically answer "yes" to any prompts that npm might print on the command line. + + #### `also` * Default: null @@ -1480,6 +1743,8 @@ command line. When set to `dev` or `development`, this is an alias for `--include=dev`. + + #### `cache-max` * Default: Infinity @@ -1488,6 +1753,8 @@ When set to `dev` or `development`, this is an alias for `--include=dev`. `--cache-max=0` is an alias for `--prefer-online` + + #### `cache-min` * Default: 0 @@ -1496,6 +1763,8 @@ When set to `dev` or `development`, this is an alias for `--include=dev`. `--cache-min=9999 (or bigger)` is an alias for `--prefer-offline`. + + #### `cert` * Default: null @@ -1517,6 +1786,8 @@ It is _not_ the path to a certificate file, though you can set a registry-scoped "certfile" path like "//other-registry.tld/:certfile=/path/to/cert.pem". + + #### `ci-name` * Default: The name of the current CI system, or `null` when not on a known CI @@ -1529,6 +1800,8 @@ The name of a continuous integration system. If not set explicitly, npm will detect the current CI environment using the [`ci-info`](http://npm.im/ci-info) module. + + #### `dev` * Default: false @@ -1537,6 +1810,8 @@ detect the current CI environment using the Alias for `--include=dev`. + + #### `global-style` * Default: false @@ -1547,6 +1822,8 @@ Alias for `--include=dev`. Only install direct dependencies in the top level `node_modules`, but hoist on deeper dependencies. Sets `--install-strategy=shallow`. + + #### `init.author.email` * Default: "" @@ -1555,6 +1832,8 @@ on deeper dependencies. Sets `--install-strategy=shallow`. Alias for `--init-author-email` + + #### `init.author.name` * Default: "" @@ -1563,6 +1842,8 @@ Alias for `--init-author-email` Alias for `--init-author-name` + + #### `init.author.url` * Default: "" @@ -1571,6 +1852,8 @@ Alias for `--init-author-name` Alias for `--init-author-url` + + #### `init.license` * Default: "ISC" @@ -1579,6 +1862,8 @@ Alias for `--init-author-url` Alias for `--init-license` + + #### `init.module` * Default: "~/.npm-init.js" @@ -1587,6 +1872,8 @@ Alias for `--init-license` Alias for `--init-module` + + #### `init.version` * Default: "1.0.0" @@ -1595,6 +1882,8 @@ Alias for `--init-module` Alias for `--init-version` + + #### `key` * Default: null @@ -1614,6 +1903,8 @@ key="-----BEGIN PRIVATE KEY-----\nXXXX\nXXXX\n-----END PRIVATE KEY-----" It is _not_ the path to a key file, though you can set a registry-scoped "keyfile" path like "//other-registry.tld/:keyfile=/path/to/key.pem". + + #### `legacy-bundling` * Default: false @@ -1626,6 +1917,8 @@ the same manner that they are depended on. This may cause very deep directory structures and duplicate package installs as there is no de-duplicating. Sets `--install-strategy=nested`. + + #### `only` * Default: null @@ -1634,6 +1927,8 @@ de-duplicating. Sets `--install-strategy=nested`. When set to `prod` or `production`, this is an alias for `--omit=dev`. + + #### `optional` * Default: null @@ -1645,6 +1940,8 @@ Default value does install optional deps unless otherwise omitted. Alias for --include=optional or --omit=optional + + #### `production` * Default: null @@ -1653,6 +1950,8 @@ Alias for --include=optional or --omit=optional Alias for `--omit=dev` + + #### `shrinkwrap` * Default: true @@ -1661,6 +1960,8 @@ Alias for `--omit=dev` Alias for --package-lock + + #### `tmp` * Default: The value returned by the Node.js `os.tmpdir()` method @@ -1673,6 +1974,8 @@ Alias for --package-lock Historically, the location where temporary files were stored. No longer relevant. + + ### See also * [npm config](/cli/v9/commands/npm-config) diff --git a/src/theme/nav.yml b/src/theme/nav.yml index 293d08a9a23..a5f5576de2f 100644 --- a/src/theme/nav.yml +++ b/src/theme/nav.yml @@ -1055,7 +1055,7 @@ - title: Changelog url: /cli/v8/using-npm/changelog description: Changelog notes for each version - - title: Version 9.6.7 (Latest Release) + - title: Version 9.7.1 (Latest Release) shortName: v9 url: /cli/v9 default: true From a195475220a21b9cff998dc65d9f46f4d5336aaf Mon Sep 17 00:00:00 2001 From: Milo Fultz Date: Mon, 12 Jun 2023 05:55:54 -0700 Subject: [PATCH 02/15] Update creating-and-publishing-scoped-public-packages.mdx (#653) * Update creating-and-publishing-scoped-public-packages.mdx The link to "about scopes" was broken. * Update content/packages-and-modules/contributing-packages-to-the-registry/creating-and-publishing-scoped-public-packages.mdx --------- Co-authored-by: Myles Borins --- .../creating-and-publishing-scoped-public-packages.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/packages-and-modules/contributing-packages-to-the-registry/creating-and-publishing-scoped-public-packages.mdx b/content/packages-and-modules/contributing-packages-to-the-registry/creating-and-publishing-scoped-public-packages.mdx index 491a7e38dcc..d09cc30b616 100644 --- a/content/packages-and-modules/contributing-packages-to-the-registry/creating-and-publishing-scoped-public-packages.mdx +++ b/content/packages-and-modules/contributing-packages-to-the-registry/creating-and-publishing-scoped-public-packages.mdx @@ -101,7 +101,7 @@ By default, scoped packages are published with private visibility. To publish a For more information on the `publish` command, see the [CLI documentation][cli-publish]. -[scopes]: about-scopes +[scopes]: /about-scopes [user-signup]: https://www.npmjs.com/signup [create-org]: https://www.npmjs.com/signup?next=/org/create [reg-config]: configuring-your-registry-settings-as-an-npm-enterprise-user From 3fc3fea9b1e2734e150689874a347574bbc6e16e Mon Sep 17 00:00:00 2001 From: Monish Chandra Mohan <23190045+monishcm@users.noreply.github.com> Date: Mon, 5 Jun 2023 12:44:47 +0200 Subject: [PATCH 03/15] Update unpublish.mdx Remove mention of moving packages to `npm` org. --- content/policies/unpublish.mdx | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/content/policies/unpublish.mdx b/content/policies/unpublish.mdx index 359fa022e39..d0e6ee8b621 100644 --- a/content/policies/unpublish.mdx +++ b/content/policies/unpublish.mdx @@ -44,12 +44,6 @@ This can be achieved by using one of the following from your command line: If the entire package is deprecated, the package name will be dropped from our search results. -Once deprecated, if you would also like for the package to be removed from your user profile, it can be [transferred](https://docs.npmjs.com/cli/owner) to our [@npm](https://www.npmjs.com/~npm) account. This can be achieved by using the following from your command line: - -- `npm owner add npm ` -- `npm owner rm ` - - ## More on our unpublish policy This document is additive to the [unpublish procedures](https://docs.npmjs.com/unpublishing-packages-from-the-registry), the CLI commands [unpublish documentation](https://docs.npmjs.com/cli/unpublish) and the ["Changes to npm Unpublish Policy - January 2020"](https://blog.npmjs.org/post/190553543620/changes-to-npmunpublish-policy-january-2020) blog post. @@ -76,4 +70,4 @@ Attribution-ShareAlike License](https://creativecommons.org/licenses/by-sa/4.0/). [dmca]: /policies/dmca -[contact]: /policies/privacy#contact \ No newline at end of file +[contact]: /policies/privacy#contact From d62c2536a9b57d40922b509781c45b68fcbd513e Mon Sep 17 00:00:00 2001 From: npm CLI robot Date: Wed, 21 Jun 2023 18:14:04 +0000 Subject: [PATCH 04/15] CLI documentation update from CI --- content/cli/v9/commands/npm-install-test.md | 16 ++++++++ content/cli/v9/commands/npm-install.md | 16 ++++++++ content/cli/v9/commands/npm-ls.md | 2 +- content/cli/v9/commands/npm.md | 2 +- .../cli/v9/configuring-npm/package-json.md | 3 -- content/cli/v9/using-npm/changelog.md | 40 +++++++++++++++++++ src/theme/nav.yml | 2 +- 7 files changed, 75 insertions(+), 6 deletions(-) diff --git a/content/cli/v9/commands/npm-install-test.md b/content/cli/v9/commands/npm-install-test.md index fbf6741be74..b8610b83d4e 100644 --- a/content/cli/v9/commands/npm-install-test.md +++ b/content/cli/v9/commands/npm-install-test.md @@ -191,6 +191,22 @@ will also prevent _writing_ `package-lock.json` if `save` is true. +#### `package-lock-only` + +* Default: false +* Type: Boolean + +If set to true, the current operation will only use the `package-lock.json`, +ignoring `node_modules`. + +For `update` this means only the `package-lock.json` will be updated, +instead of checking `node_modules` and downloading dependencies. + +For `list` this means the output will be based on the tree described by the +`package-lock.json`, rather than the contents of `node_modules`. + + + #### `foreground-scripts` * Default: false diff --git a/content/cli/v9/commands/npm-install.md b/content/cli/v9/commands/npm-install.md index db2e5044bd7..7fceb94e568 100644 --- a/content/cli/v9/commands/npm-install.md +++ b/content/cli/v9/commands/npm-install.md @@ -581,6 +581,22 @@ will also prevent _writing_ `package-lock.json` if `save` is true. +#### `package-lock-only` + +* Default: false +* Type: Boolean + +If set to true, the current operation will only use the `package-lock.json`, +ignoring `node_modules`. + +For `update` this means only the `package-lock.json` will be updated, +instead of checking `node_modules` and downloading dependencies. + +For `list` this means the output will be based on the tree described by the +`package-lock.json`, rather than the contents of `node_modules`. + + + #### `foreground-scripts` * Default: false diff --git a/content/cli/v9/commands/npm-ls.md b/content/cli/v9/commands/npm-ls.md index beb0e692e4c..1639e10986d 100644 --- a/content/cli/v9/commands/npm-ls.md +++ b/content/cli/v9/commands/npm-ls.md @@ -58,7 +58,7 @@ packages will *also* show the paths to the specified packages. For example, running `npm ls promzard` in npm's source tree will show: ```bash -npm@9.7.1 /path/to/npm +npm@9.7.2 /path/to/npm └─┬ init-package-json@0.0.4 └── promzard@0.1.5 ``` diff --git a/content/cli/v9/commands/npm.md b/content/cli/v9/commands/npm.md index 6fef8a90749..f6a5f9ded29 100644 --- a/content/cli/v9/commands/npm.md +++ b/content/cli/v9/commands/npm.md @@ -31,7 +31,7 @@ Note: This command is unaware of workspaces. ### Version -9.7.1 +9.7.2 ### Description diff --git a/content/cli/v9/configuring-npm/package-json.md b/content/cli/v9/configuring-npm/package-json.md index d64173633fb..8b8601266d9 100644 --- a/content/cli/v9/configuring-npm/package-json.md +++ b/content/cli/v9/configuring-npm/package-json.md @@ -302,9 +302,6 @@ it will. The `.npmignore` file works just like a `.gitignore`. If there is a `.gitignore` file, and `.npmignore` is missing, `.gitignore`'s contents will be used instead. -Files included with the "package.json#files" field _cannot_ be excluded -through `.npmignore` or `.gitignore`. - Certain files are always included, regardless of settings: * `package.json` diff --git a/content/cli/v9/using-npm/changelog.md b/content/cli/v9/using-npm/changelog.md index deb7fcea7a3..b8021f8d4e6 100644 --- a/content/cli/v9/using-npm/changelog.md +++ b/content/cli/v9/using-npm/changelog.md @@ -17,6 +17,46 @@ redirect_from: # Changelog +## [9.7.2](https://github.com/npm/cli/compare/v9.7.1...v9.7.2) (2023-06-21) + +### Bug Fixes + +* [`939a188`](https://github.com/npm/cli/commit/939a188bc3ab9c2bfa49ccb4837fe4ad844131ed) [#6574](https://github.com/npm/cli/pull/6574) ignore node prereleases in npm engines check (#6574) (@wraithgar) +* [`d980405`](https://github.com/npm/cli/commit/d980405ffcbc80ad63fbea680ee40a57ffc4a210) [#6556](https://github.com/npm/cli/pull/6556) better color support detection (#6556) (@lukekarrys) +* [`40d7e09`](https://github.com/npm/cli/commit/40d7e09aa9c038bc20e37c4fbd21d02dc82b93a7) [#6555](https://github.com/npm/cli/pull/6555) remove unnecessary package.json values (#6555) (@lukekarrys) +* [`3a7378d`](https://github.com/npm/cli/commit/3a7378d889707d2a4c1f8a6397dda87825e9f5a3) [#6554](https://github.com/npm/cli/pull/6554) cleanup bin contents (@lukekarrys) +* [`e722439`](https://github.com/npm/cli/commit/e722439b05bb4da691975359db58eac794f1f5d9) [#6497](https://github.com/npm/cli/pull/6497) move all definitions to @npmcli/config package (@lukekarrys) + +### Documentation + +* [`405ffbf`](https://github.com/npm/cli/commit/405ffbfa2758ec388c06120fdf5fde2a07835779) [#6557](https://github.com/npm/cli/pull/6557) remove redundant statement about files attribute (#6557) (@DaviDevMod) +* [`cd1e6aa`](https://github.com/npm/cli/commit/cd1e6aa320ccc264f5027de5976bb7acc32f1ded) [#6551](https://github.com/npm/cli/pull/6551) add flag `package-lock-only` for `npm install` (#6551) (@m4rch3n1ng) + +### Dependencies + +* [`aebc523`](https://github.com/npm/cli/commit/aebc523c46f6e37c943a750e4cb6ec4b8f12ae01) [#6585](https://github.com/npm/cli/pull/6585) `safe-buffer@5.2.1` `string_decoder@1.3.0` (#6585) +* [`bb6054b`](https://github.com/npm/cli/commit/bb6054b9558efd859e32ba9227453b3c84ef647d) [#6573](https://github.com/npm/cli/pull/6573) `tuf-js@1.1.7` +* [`aee4a30`](https://github.com/npm/cli/commit/aee4a30bfb88ac147f5f8ac9bdb28cfc0be16e7f) [#6573](https://github.com/npm/cli/pull/6573) `strip-ansi@7.1.0` +* [`6105dbc`](https://github.com/npm/cli/commit/6105dbcc1c1647c66759e73ad8699a539e8a70c3) [#6573](https://github.com/npm/cli/pull/6573) `path-scurry@1.9.2` +* [`22d44e8`](https://github.com/npm/cli/commit/22d44e81d6bced4c9d5960b74023ee017df6606b) [#6573](https://github.com/npm/cli/pull/6573) `read-package-json@6.0.4` +* [`fdd02fd`](https://github.com/npm/cli/commit/fdd02fde1c53ce66a3b15b55907fd7e80680b89b) [#6573](https://github.com/npm/cli/pull/6573) `jackspeak@2.2.1` +* [`7797075`](https://github.com/npm/cli/commit/77970756cb2a18257a50e765617f2237abe245d6) [#6573](https://github.com/npm/cli/pull/6573) `is-core-module@2.12.1` +* [`f9780cc`](https://github.com/npm/cli/commit/f9780ccbde62feb59691b5c2f19ed5f3688b1e7e) [#6573](https://github.com/npm/cli/pull/6573) `sigstore@1.6.0` +* [`72d6a79`](https://github.com/npm/cli/commit/72d6a79fa28aec50dab576e93ef06a89694770a5) [#6573](https://github.com/npm/cli/pull/6573) `semver@7.5.2` +* [`98f1f5f`](https://github.com/npm/cli/commit/98f1f5fd2d6890c207c77452739053a674d83990) [#6573](https://github.com/npm/cli/pull/6573) `nopt@7.2.0` +* [`8710ff8`](https://github.com/npm/cli/commit/8710ff88afffb573b4f65c4a19303924935fecd2) [#6573](https://github.com/npm/cli/pull/6573) `pacote@15.2.0` +* [`0cb539d`](https://github.com/npm/cli/commit/0cb539dae1311ef0f60ccf5bd47def1763c38852) [#6573](https://github.com/npm/cli/pull/6573) `node-gyp@9.4.0` +* [`39ad586`](https://github.com/npm/cli/commit/39ad5862ffc99b3da365ab3dd8538b68a4352ea5) [#6573](https://github.com/npm/cli/pull/6573) `ini@4.1.1` +* [`5e0070c`](https://github.com/npm/cli/commit/5e0070cf28353e94458e0d8190833595aa143314) [#6573](https://github.com/npm/cli/pull/6573) `glob@10.2.7` `minimatch@9.0.1` +* [`26cf235`](https://github.com/npm/cli/commit/26cf235aa45d0d4100f061f009c1ffdf0a1fdf16) [#6573](https://github.com/npm/cli/pull/6573) `cacache@17.1.3` +* [Workspace](https://github.com/npm/cli/releases/tag/arborist-v6.2.10): `@npmcli/arborist@6.2.10` +* [Workspace](https://github.com/npm/cli/releases/tag/config-v6.2.1): `@npmcli/config@6.2.1` +* [Workspace](https://github.com/npm/cli/releases/tag/libnpmdiff-v5.0.18): `libnpmdiff@5.0.18` +* [Workspace](https://github.com/npm/cli/releases/tag/libnpmexec-v6.0.1): `libnpmexec@6.0.1` +* [Workspace](https://github.com/npm/cli/releases/tag/libnpmfund-v4.0.18): `libnpmfund@4.0.18` +* [Workspace](https://github.com/npm/cli/releases/tag/libnpmpack-v5.0.18): `libnpmpack@5.0.18` +* [Workspace](https://github.com/npm/cli/releases/tag/libnpmpublish-v7.4.0): `libnpmpublish@7.4.0` + ## [9.7.1](https://github.com/npm/cli/compare/v9.7.0...v9.7.1) (2023-06-06) ### Dependencies diff --git a/src/theme/nav.yml b/src/theme/nav.yml index a5f5576de2f..45b95a61521 100644 --- a/src/theme/nav.yml +++ b/src/theme/nav.yml @@ -1055,7 +1055,7 @@ - title: Changelog url: /cli/v8/using-npm/changelog description: Changelog notes for each version - - title: Version 9.7.1 (Latest Release) + - title: Version 9.7.2 (Latest Release) shortName: v9 url: /cli/v9 default: true From dc9ace6dd769558c54e0140ea7e835018cd0f8ea Mon Sep 17 00:00:00 2001 From: Monish Chandra Mohan <23190045+monishcm@users.noreply.github.com> Date: Mon, 26 Jun 2023 15:19:55 +0200 Subject: [PATCH 05/15] Update org role permissions (#665) --- .../organization-roles-and-permissions.mdx | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/content/organizations/managing-organization-members/organization-roles-and-permissions.mdx b/content/organizations/managing-organization-members/organization-roles-and-permissions.mdx index 9881e2bdcc8..99ee196472e 100644 --- a/content/organizations/managing-organization-members/organization-roles-and-permissions.mdx +++ b/content/organizations/managing-organization-members/organization-roles-and-permissions.mdx @@ -15,15 +15,16 @@ There are three roles in an organization: | Action | **Owner** | **Admin** | **Member** | |:------------------------------------------------------|:---------:|:---------:|:----------:| -| Manage organization billing | X | | | -| Add members to the organization | X | | | -| Remove members from the organization | X | | | -| Rename an organization | X | | | -| Delete an organization | X | | | -| Change any organization member's role | X | | | -| Create teams | X | X | | -| Delete teams | X | X | | -| Add any member to any team | X | X | | -| Remove any member from any team | X | X | | -| Manage team package access | X | X | | -| Create and publish packages in the organization scope | X | X | X | +| Manage organization billing | X | | | +| Add members to the organization | X | | | +| Remove members from the organization | X | | | +| Rename an organization | X | | | +| Delete an organization | X | | | +| Change any organization member's role | X | | | +| Add org owned packages to other orgs | X | | | +| Create teams | X | X | | +| Delete teams | X | X | | +| Add any member to any team | X | X | | +| Remove any member from any team | X | X | | +| Manage team package access | X | X | | +| Create and publish packages in the organization scope | X | X | X | From 88754e5a4ec2897b11ec1d58c52035fa7919086a Mon Sep 17 00:00:00 2001 From: npm CLI robot Date: Wed, 5 Jul 2023 20:30:17 +0000 Subject: [PATCH 06/15] CLI documentation update from CI --- content/cli/v9/commands/npm-ls.md | 2 +- content/cli/v9/commands/npm-pkg.md | 8 ++++++++ content/cli/v9/commands/npm.md | 2 +- content/cli/v9/using-npm/changelog.md | 18 ++++++++++++++++++ src/theme/nav.yml | 2 +- 5 files changed, 29 insertions(+), 3 deletions(-) diff --git a/content/cli/v9/commands/npm-ls.md b/content/cli/v9/commands/npm-ls.md index 1639e10986d..a07532e2a35 100644 --- a/content/cli/v9/commands/npm-ls.md +++ b/content/cli/v9/commands/npm-ls.md @@ -58,7 +58,7 @@ packages will *also* show the paths to the specified packages. For example, running `npm ls promzard` in npm's source tree will show: ```bash -npm@9.7.2 /path/to/npm +npm@9.8.0 /path/to/npm └─┬ init-package-json@0.0.4 └── promzard@0.1.5 ``` diff --git a/content/cli/v9/commands/npm-pkg.md b/content/cli/v9/commands/npm-pkg.md index 891f3ccda95..24d4ddb26b1 100644 --- a/content/cli/v9/commands/npm-pkg.md +++ b/content/cli/v9/commands/npm-pkg.md @@ -43,6 +43,7 @@ npm pkg get [ [ ...]] npm pkg delete [ ...] npm pkg set [[].= ...] npm pkg set [[].= ...] +npm pkg fix ``` ### Description @@ -172,6 +173,13 @@ Returned values are always in **json** format. npm pkg delete scripts.build ``` +* `npm pkg fix` + + Auto corrects common errors in your `package.json`. npm already + does this during `publish`, which leads to subtle (mostly harmless) + differences between the contents of your `package.json` file and the + manifest that npm uses during installation. + ### Workspaces support You can set/get/delete items across your configured workspaces by using the diff --git a/content/cli/v9/commands/npm.md b/content/cli/v9/commands/npm.md index f6a5f9ded29..b7cf51921a7 100644 --- a/content/cli/v9/commands/npm.md +++ b/content/cli/v9/commands/npm.md @@ -31,7 +31,7 @@ Note: This command is unaware of workspaces. ### Version -9.7.2 +9.8.0 ### Description diff --git a/content/cli/v9/using-npm/changelog.md b/content/cli/v9/using-npm/changelog.md index b8021f8d4e6..e01075d336e 100644 --- a/content/cli/v9/using-npm/changelog.md +++ b/content/cli/v9/using-npm/changelog.md @@ -17,6 +17,24 @@ redirect_from: # Changelog +## [9.8.0](https://github.com/npm/cli/compare/v9.7.2...v9.8.0) (2023-07-05) + +### Features + +* [`67459e7`](https://github.com/npm/cli/commit/67459e7b56a5e8d2b4f8eb3a0487183013c63b99) [#6626](https://github.com/npm/cli/pull/6626) add `pkg fix` subcommand (@wraithgar) +* [`89b2741`](https://github.com/npm/cli/commit/89b27413952ca454f715fee314d37e26f371444d) [#6548](https://github.com/npm/cli/pull/6548) add ps1 scripts (#6548) (@mribbons, @lukekarrys) + +### Dependencies + +* [`b252164`](https://github.com/npm/cli/commit/b252164dd5c866bf2d25c96836ad829d4d6909ee) [#6626](https://github.com/npm/cli/pull/6626) `@npmcli/package-json@4.0.0` +* [`9238682`](https://github.com/npm/cli/commit/92386822ddf0a849fd2c269b1f5ee9ee47082da0) [#6623](https://github.com/npm/cli/pull/6623) `sigstore@1.7.0` (#6623) +* [Workspace](https://github.com/npm/cli/releases/tag/arborist-v6.3.0): `@npmcli/arborist@6.3.0` +* [Workspace](https://github.com/npm/cli/releases/tag/libnpmdiff-v5.0.19): `libnpmdiff@5.0.19` +* [Workspace](https://github.com/npm/cli/releases/tag/libnpmexec-v6.0.2): `libnpmexec@6.0.2` +* [Workspace](https://github.com/npm/cli/releases/tag/libnpmfund-v4.0.19): `libnpmfund@4.0.19` +* [Workspace](https://github.com/npm/cli/releases/tag/libnpmpack-v5.0.19): `libnpmpack@5.0.19` +* [Workspace](https://github.com/npm/cli/releases/tag/libnpmpublish-v7.5.0): `libnpmpublish@7.5.0` + ## [9.7.2](https://github.com/npm/cli/compare/v9.7.1...v9.7.2) (2023-06-21) ### Bug Fixes diff --git a/src/theme/nav.yml b/src/theme/nav.yml index 45b95a61521..4b4a4b3c8b9 100644 --- a/src/theme/nav.yml +++ b/src/theme/nav.yml @@ -1055,7 +1055,7 @@ - title: Changelog url: /cli/v8/using-npm/changelog description: Changelog notes for each version - - title: Version 9.7.2 (Latest Release) + - title: Version 9.8.0 (Latest Release) shortName: v9 url: /cli/v9 default: true From f2c57df5940436a8671e05d972df71aa0a52025a Mon Sep 17 00:00:00 2001 From: Philip Harrison Date: Tue, 11 Jul 2023 17:38:47 +0100 Subject: [PATCH 07/15] Updated GAT restrictions (#671) - 50 tokens to 1000 tokens - Remove max 365 days expiry Signed-off-by: Philip Harrison --- .../about-access-tokens.mdx | 6 +++--- .../creating-and-viewing-access-tokens.mdx | 20 +++++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/content/integrations/integrating-npm-with-external-services/about-access-tokens.mdx b/content/integrations/integrating-npm-with-external-services/about-access-tokens.mdx index 74d199428a9..b66a401bfcf 100644 --- a/content/integrations/integrating-npm-with-external-services/about-access-tokens.mdx +++ b/content/integrations/integrating-npm-with-external-services/about-access-tokens.mdx @@ -40,7 +40,7 @@ There are three different types of legacy tokens: * **Read-only**: You can use these tokens to download packages from the registry. These tokens are best for automation and workflows where you are installing packages. For greater security, we recommend using [granular access tokens](#about-granular-access-tokens) instead. * **Automation**: You can use these tokens to download packages and install new ones. These tokens are best for automation workflows where you are publishing new packages. Automation tokens do not 2FA for executing operations on npm and are suitable for CI/CD workflows. For greater security, we recommend using [granular access tokens](#about-granular-access-tokens) instead. -* **Publish**: You can use these tokens to download packages, install packages, and update user and package settings. We recommend using them for interactive workflows such as a CLI. If 2FA is enabled on your account, publish tokens will require 2FA to execute sensitive operations on npm. +* **Publish**: You can use these tokens to download packages, install packages, and update user and package settings. We recommend using them for interactive workflows such as a CLI. If 2FA is enabled on your account, publish tokens will require 2FA to execute sensitive operations on npm. Legacy tokens do not have an expiration date. It is important to be aware of your tokens and keep them protected for account security. For more information, see "[Securing your token][secure-token]." @@ -54,9 +54,9 @@ Granular access tokens allow you to restrict access provided to the token based * Limit token access based on IP address ranges * Select between **read-only** or **read and write** access -You can create up to 50 granular access tokens on your npm account. You can set how long your token is valid for, up to a maximum expiration of 365 days from creation. Each token can access up to 50 organizations, and up to either 50 packages, 50 scopes, or a combination of 50 packages and scopes. Access tokens are tied to users’ permission; hence it cannot have more permission than the user at any point in time. If a user has their access revoked from a package or an org., their granular access token also will have its access revoked from those packages or org. +You can create up to 1000 granular access tokens on your npm account. You can set how long your token is valid for, at least one day in the future. Each token can access up to 50 organizations, and up to either 50 packages, 50 scopes, or a combination of 50 packages and scopes. Access tokens are tied to users’ permission; hence it cannot have more permission than the user at any point in time. If a user has their access revoked from a package or an org., their granular access token also will have its access revoked from those packages or org. -When you give a token access to an organization, the token can only be used for managing organization settings and teams or users associated with the organization. It does not give the token the right to publish packages managed by the organization. +When you give a token access to an organization, the token can only be used for managing organization settings and teams or users associated with the organization. It does not give the token the right to publish packages managed by the organization. [create-token]: creating-and-viewing-access-tokens [secure-token]: using-private-packages-in-a-ci-cd-workflow#securing-your-token diff --git a/content/integrations/integrating-npm-with-external-services/creating-and-viewing-access-tokens.mdx b/content/integrations/integrating-npm-with-external-services/creating-and-viewing-access-tokens.mdx index d60e1666d05..32241e566fa 100644 --- a/content/integrations/integrating-npm-with-external-services/creating-and-viewing-access-tokens.mdx +++ b/content/integrations/integrating-npm-with-external-services/creating-and-viewing-access-tokens.mdx @@ -51,19 +51,19 @@ You can [create](#creating-access-tokens) and [view](#viewing-access-tokens) acc 3. In the **Token name** field, enter a name for your token. - + 4. (Optional) In the **Description** field, enter a description for your token. -5. In the **Expiration** field, enter a token expiration period. This must be between 1 and 365 days. - -6. (Optional) In the **Allowed IP Ranges** field, enter IP address ranges to restrict your access token to. You must use [CIDR][cidr-wiki] notation to enter IP address ranges. To add more than one allowed IP range, click **Add IP Range** and enter an IP range in the new text field. +5. In the **Expiration** field, enter a token expiration period. The date must be at least 1 day in the future. + +6. (Optional) In the **Allowed IP Ranges** field, enter IP address ranges to restrict your access token to. You must use [CIDR][cidr-wiki] notation to enter IP address ranges. To add more than one allowed IP range, click **Add IP Range** and enter an IP range in the new text field. - -7. (Optional) In the **Packages and scopes** section, configure your token's access to packages and scopes. + +7. (Optional) In the **Packages and scopes** section, configure your token's access to packages and scopes. - In the **Permissions** dropdown menu, select **No access**, **Read-only**, or **Read and write**. - - Under **Select Packages**, select either: + - Under **Select Packages**, select either: - **All Packages** to grant the token access to all packages the user account has access to. - **Only select packages and scopes** to choose up to 50 specific packages or scopes to give the token access to. Then select specific packages or scopes from the dropdown menu. @@ -71,14 +71,14 @@ You can [create](#creating-access-tokens) and [view](#viewing-access-tokens) acc 8. (Optional) In the **Organizations** section, configure your token's access to organizations. - In the **Permissions** dropdown menu, select **No access**, **Read-only**, or **Read and write**. - - Under **Select organizations**, select the organizations you want to grant your token access to. + - Under **Select organizations**, select the organizations you want to grant your token access to. _**Note**: When you give a token access to an organization, the token can only be used for managing organization settings and teams or users associated with the organization. It does not give the token the right to publish packages managed by the organization._ 9. Review the token summary, then click **Generate Token**. - + 10. Copy the token from the top of page. @@ -91,7 +91,7 @@ You can create tokens with **read-only** permissions or **read and publish** per **Note:** You cannot create legacy automation tokens or granular access tokens from the CLI. You must use the website to generate these types of tokens. For more information, see "[Creating legacy tokens on the website](#creating-legacy-tokens-on-the-website)" and "[Creating granular access tokens on the website](#creating-granular-access-tokens-on-the-website)." - + - **Read-only:** Tokens that allow installation and distribution only, but no publishing or other rights associated with your account. - **Publish:** The default setting for new tokens, and most permissive token type. Publish tokens allow installation, distribution, modification, publishing, and all rights that you have on your account. From 95d9700aadcb7f3617c6d7249d81f51ef6a85b7a Mon Sep 17 00:00:00 2001 From: Philip Harrison Date: Tue, 11 Jul 2023 18:10:21 +0100 Subject: [PATCH 08/15] Docs for unreachable provenance source commit (#672) npm will now show a warning when the npm provenance source commit or repository cannot be found. Signed-off-by: Philip Harrison --- ...ng-for-and-choosing-packages-to-download.mdx | 10 +++++++++- ...-provenance-unreachable-source-commit@2x.png | Bin 0 -> 97975 bytes 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 static/packages-and-modules/getting-packages-from-the-registry/npm-provenance-unreachable-source-commit@2x.png diff --git a/content/packages-and-modules/getting-packages-from-the-registry/searching-for-and-choosing-packages-to-download.mdx b/content/packages-and-modules/getting-packages-from-the-registry/searching-for-and-choosing-packages-to-download.mdx index 523a299d4d7..b262be28f24 100644 --- a/content/packages-and-modules/getting-packages-from-the-registry/searching-for-and-choosing-packages-to-download.mdx +++ b/content/packages-and-modules/getting-packages-from-the-registry/searching-for-and-choosing-packages-to-download.mdx @@ -48,7 +48,7 @@ You can use this information to audit packages and determine whether or not you To view provenance information for a package in the npm registry: -1. In the npm registry, navigate to a package. +1. In the npm registry, navigate to a package. 2. On the package's page, in the **Version** field to the right of the README, look for a green check mark. If there is a green check mark, this means the package was published with provenance. @@ -66,6 +66,14 @@ To view provenance information for a package in the npm registry: + + +**Note:** Whenever you access a package's provenance information on npmjs.com, the linked source commit and repository are checked by npm. If the linked source commit or repository cannot be found, an error message will appear at the top of the page and alongside the provenance information. This is to inform you that the provenance for this package can no longer be established, which may occur when a repository is deleted or made private. + + + + + ### Verifying provenance attestations When you download a package from the registry, you can verify the provenance of a package with the following CLI command: diff --git a/static/packages-and-modules/getting-packages-from-the-registry/npm-provenance-unreachable-source-commit@2x.png b/static/packages-and-modules/getting-packages-from-the-registry/npm-provenance-unreachable-source-commit@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6534a9ef76a6ecb4323712c4d8be368492d6c22a GIT binary patch literal 97975 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
    {OfB}J%Y#%5H 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≥zwTf|(Y01SF> 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%0Av0n`Nju^ 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%0D}RdTTgSzy-{Fmn;r$^1y1z4Zrw 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 literal 0 HcmV?d00001 From 0f98027ac404c421306cfad9a288e912fe42fc69 Mon Sep 17 00:00:00 2001 From: npm CLI robot Date: Wed, 19 Jul 2023 17:19:27 +0000 Subject: [PATCH 09/15] CLI documentation update from CI --- content/cli/v9/commands/npm-ls.md | 2 +- content/cli/v9/commands/npm.md | 2 +- content/cli/v9/using-npm/changelog.md | 22 ++++++++++++++++++++++ src/theme/nav.yml | 2 +- 4 files changed, 25 insertions(+), 3 deletions(-) diff --git a/content/cli/v9/commands/npm-ls.md b/content/cli/v9/commands/npm-ls.md index a07532e2a35..0546d3a4e2d 100644 --- a/content/cli/v9/commands/npm-ls.md +++ b/content/cli/v9/commands/npm-ls.md @@ -58,7 +58,7 @@ packages will *also* show the paths to the specified packages. For example, running `npm ls promzard` in npm's source tree will show: ```bash -npm@9.8.0 /path/to/npm +npm@9.8.1 /path/to/npm └─┬ init-package-json@0.0.4 └── promzard@0.1.5 ``` diff --git a/content/cli/v9/commands/npm.md b/content/cli/v9/commands/npm.md index b7cf51921a7..6e9031aba89 100644 --- a/content/cli/v9/commands/npm.md +++ b/content/cli/v9/commands/npm.md @@ -31,7 +31,7 @@ Note: This command is unaware of workspaces. ### Version -9.8.0 +9.8.1 ### Description diff --git a/content/cli/v9/using-npm/changelog.md b/content/cli/v9/using-npm/changelog.md index e01075d336e..3023be7ba12 100644 --- a/content/cli/v9/using-npm/changelog.md +++ b/content/cli/v9/using-npm/changelog.md @@ -17,6 +17,28 @@ redirect_from: # Changelog +## [9.8.1](https://github.com/npm/cli/compare/v9.8.0...v9.8.1) (2023-07-18) + +### Bug Fixes + +* [`38351c9`](https://github.com/npm/cli/commit/38351c954040ddea56dc5db453f7f7d10964e5cd) [#6651](https://github.com/npm/cli/pull/6651) warn on autocorrected package.json entries during publish (@wraithgar) +* [`02c7ddb`](https://github.com/npm/cli/commit/02c7ddb4501682c9e84b8c1325638b7db1ca7deb) [#6642](https://github.com/npm/cli/pull/6642) much clearer npx 'canceled' error (#6642) (@rahulio96, @AaronHamilton965) + +### Documentation + +* [`36bf5fe`](https://github.com/npm/cli/commit/36bf5fe2a0a2ef7f7ffc0b302eea15e227556010) [#6643](https://github.com/npm/cli/pull/6643) Added steps for using npm/npx locally to CONTRIBUTING.md (#6643) (@AaronHamilton965, @rahulio96) + +### Dependencies + +* [`a0763d3`](https://github.com/npm/cli/commit/a0763d38d8934a6769e5aac08539291c5051f36e) [#6651](https://github.com/npm/cli/pull/6651) `@npmcli/package-json@4.0.1` +* [`24f5a8b`](https://github.com/npm/cli/commit/24f5a8b07909710e06f5aa3844d99c03cce0b9ca) [#6653](https://github.com/npm/cli/pull/6653) `supports-color@9.4.0` +* [`f45498b`](https://github.com/npm/cli/commit/f45498b33550d3874b9602ef027f215ea2590124) [#6653](https://github.com/npm/cli/pull/6653) `chalk@5.3.0` +* [`44d60eb`](https://github.com/npm/cli/commit/44d60eb0c4ee0456ee4c9f855f06348cfb4c0f9c) [#6653](https://github.com/npm/cli/pull/6653) `minimatch@9.0.3` +* [`fc9a843`](https://github.com/npm/cli/commit/fc9a843f59ec4c1733d427566b9df9a4b440bb7f) [#6653](https://github.com/npm/cli/pull/6653) `bin-links@3.0.2` +* [`daad9ad`](https://github.com/npm/cli/commit/daad9addc1e2587d162e06016498252cf0b6514a) [#6653](https://github.com/npm/cli/pull/6653) `semver@7.5.4` +* [`c1ffd6a`](https://github.com/npm/cli/commit/c1ffd6a2f91cdb5c8d3cd7524a3136346181f67f) [#6653](https://github.com/npm/cli/pull/6653) move @npmcli/fs, @npmcli/promise-spawn into dependencies +* [Workspace](https://github.com/npm/cli/releases/tag/libnpmexec-v6.0.3): `libnpmexec@6.0.3` + ## [9.8.0](https://github.com/npm/cli/compare/v9.7.2...v9.8.0) (2023-07-05) ### Features diff --git a/src/theme/nav.yml b/src/theme/nav.yml index 4b4a4b3c8b9..2b51e6245df 100644 --- a/src/theme/nav.yml +++ b/src/theme/nav.yml @@ -1055,7 +1055,7 @@ - title: Changelog url: /cli/v8/using-npm/changelog description: Changelog notes for each version - - title: Version 9.8.0 (Latest Release) + - title: Version 9.8.1 (Latest Release) shortName: v9 url: /cli/v9 default: true From 2442e3c64ee3776f9b325cf5d8becc3d634416f8 Mon Sep 17 00:00:00 2001 From: Philip Harrison Date: Wed, 26 Jul 2023 14:22:22 +0100 Subject: [PATCH 10/15] Update provenance docs (#679) * Update provenance docs Update provenance docs to clarify you need to use a public source repository and add a note for the first version. Signed-off-by: Philip Harrison * Add note about npm cli version Signed-off-by: Philip Harrison --------- Signed-off-by: Philip Harrison --- .../generating-provenance-statements.mdx | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/content/packages-and-modules/securing-your-code/generating-provenance-statements.mdx b/content/packages-and-modules/securing-your-code/generating-provenance-statements.mdx index d29b6ef54ca..b0c0c90eb16 100644 --- a/content/packages-and-modules/securing-your-code/generating-provenance-statements.mdx +++ b/content/packages-and-modules/securing-your-code/generating-provenance-statements.mdx @@ -26,7 +26,7 @@ The transparency log service provides a public, verifiable, tamper-evident ledge ## Provenance limitations -- In order to publish a package with provenance, you must build your package with a supported cloud CI/CD provider using a cloud-hosted runner. Today this includes GitHub Actions, and we are collaborating with additional providers to expand support. For more information on how to establish provenance using GitHub Actions, see "[Publishing packages with provenance via GitHub Actions][publishing-with-provenance]." +- In order to publish a package with provenance, you must build your package with a supported cloud CI/CD provider using a cloud-hosted runner from a public source repository. Today this includes GitHub Actions, and we are collaborating with additional providers to expand support. For more information on how to establish provenance using GitHub Actions, see "[Publishing packages with provenance via GitHub Actions][publishing-with-provenance]." - When a package in the npm registry has established provenance, it does not guarantee the package has no malicious code. Instead, npm provenance provides a verifiable link to the package's source code and build instructions, which developers can then audit and determine whether to trust it or not. For more information, see "[Searching for and choosing packages to download][provenance-info]." ## Prerequisites @@ -35,9 +35,9 @@ Before you can publish your packages with provenance, you must: - Review the [Linux Foundation Immutable Record notice](https://lfprojects.org/policies/hosted-project-tools-immutable-records/), which applies to the public transparency log. -- Install the latest version of the npm CLI. For more information, see "[Try the latest stable version of npm][update-npm]." +- Install the latest version of the npm CLI (ensure you are on `9.5.0+` as older versions don't support npm provenance). For more information, see "[Try the latest stable version of npm][update-npm]." -- Ensure your `package.json` is configured with a `repository` that matches where you are publishing with provenance from. +- Ensure your `package.json` is configured with a public `repository` that matches where you are publishing with provenance from. - Set up a GitHub Actions workflow to publish your packages to the npm registry. For more information, see [Understanding GitHub Actions][understand-actions] in the GitHub documentation. @@ -66,6 +66,12 @@ To update your GitHub Actions workflow to publish your packages with provenance, npm publish --provenance ``` +- If you are publishing a package for the first time you will also need to explicitly set access to public: + + ``` + npm publish --provenance --access public + ``` + ### Example GitHub Actions workflow This example workflow publishes a package to the npm registry with provenance. From db37a94b536b15915bd775529248f1046d182779 Mon Sep 17 00:00:00 2001 From: Luke Karrys Date: Wed, 26 Jul 2023 15:53:57 -0700 Subject: [PATCH 11/15] Update CLI releases for npm 10 (#680) --- cli/lib/build.js | 4 ++-- cli/releases.json | 4 ++++ content/cli/v9/commands/index.mdx | 2 +- content/cli/v9/commands/npm-access.md | 2 +- content/cli/v9/commands/npm-adduser.md | 2 +- content/cli/v9/commands/npm-audit.md | 2 +- content/cli/v9/commands/npm-bugs.md | 2 +- content/cli/v9/commands/npm-cache.md | 2 +- content/cli/v9/commands/npm-ci.md | 2 +- content/cli/v9/commands/npm-completion.md | 2 +- content/cli/v9/commands/npm-config.md | 2 +- content/cli/v9/commands/npm-dedupe.md | 2 +- content/cli/v9/commands/npm-deprecate.md | 2 +- content/cli/v9/commands/npm-diff.md | 2 +- content/cli/v9/commands/npm-dist-tag.md | 2 +- content/cli/v9/commands/npm-docs.md | 2 +- content/cli/v9/commands/npm-doctor.md | 2 +- content/cli/v9/commands/npm-edit.md | 2 +- content/cli/v9/commands/npm-exec.md | 2 +- content/cli/v9/commands/npm-explain.md | 2 +- content/cli/v9/commands/npm-explore.md | 2 +- content/cli/v9/commands/npm-find-dupes.md | 2 +- content/cli/v9/commands/npm-fund.md | 2 +- content/cli/v9/commands/npm-help-search.md | 2 +- content/cli/v9/commands/npm-help.md | 2 +- content/cli/v9/commands/npm-hook.md | 2 +- content/cli/v9/commands/npm-init.md | 2 +- content/cli/v9/commands/npm-install-ci-test.md | 2 +- content/cli/v9/commands/npm-install-test.md | 2 +- content/cli/v9/commands/npm-install.md | 2 +- content/cli/v9/commands/npm-link.md | 2 +- content/cli/v9/commands/npm-login.md | 2 +- content/cli/v9/commands/npm-logout.md | 2 +- content/cli/v9/commands/npm-ls.md | 2 +- content/cli/v9/commands/npm-org.md | 2 +- content/cli/v9/commands/npm-outdated.md | 2 +- content/cli/v9/commands/npm-owner.md | 2 +- content/cli/v9/commands/npm-pack.md | 2 +- content/cli/v9/commands/npm-ping.md | 2 +- content/cli/v9/commands/npm-pkg.md | 2 +- content/cli/v9/commands/npm-prefix.md | 2 +- content/cli/v9/commands/npm-profile.md | 2 +- content/cli/v9/commands/npm-prune.md | 2 +- content/cli/v9/commands/npm-publish.md | 2 +- content/cli/v9/commands/npm-query.md | 2 +- content/cli/v9/commands/npm-rebuild.md | 2 +- content/cli/v9/commands/npm-repo.md | 2 +- content/cli/v9/commands/npm-restart.md | 2 +- content/cli/v9/commands/npm-root.md | 2 +- content/cli/v9/commands/npm-run-script.md | 2 +- content/cli/v9/commands/npm-search.md | 2 +- content/cli/v9/commands/npm-shrinkwrap.md | 2 +- content/cli/v9/commands/npm-star.md | 2 +- content/cli/v9/commands/npm-stars.md | 2 +- content/cli/v9/commands/npm-start.md | 2 +- content/cli/v9/commands/npm-stop.md | 2 +- content/cli/v9/commands/npm-team.md | 2 +- content/cli/v9/commands/npm-test.md | 2 +- content/cli/v9/commands/npm-token.md | 2 +- content/cli/v9/commands/npm-uninstall.md | 2 +- content/cli/v9/commands/npm-unpublish.md | 2 +- content/cli/v9/commands/npm-unstar.md | 2 +- content/cli/v9/commands/npm-update.md | 2 +- content/cli/v9/commands/npm-version.md | 2 +- content/cli/v9/commands/npm-view.md | 2 +- content/cli/v9/commands/npm-whoami.md | 2 +- content/cli/v9/commands/npm.md | 2 +- content/cli/v9/commands/npx.md | 2 +- content/cli/v9/configuring-npm/folders.md | 2 +- content/cli/v9/configuring-npm/index.mdx | 2 +- content/cli/v9/configuring-npm/install.md | 2 +- content/cli/v9/configuring-npm/npm-shrinkwrap-json.md | 2 +- content/cli/v9/configuring-npm/npmrc.md | 2 +- content/cli/v9/configuring-npm/package-json.md | 2 +- content/cli/v9/configuring-npm/package-lock-json.md | 2 +- content/cli/v9/index.mdx | 2 +- content/cli/v9/using-npm/changelog.md | 2 +- content/cli/v9/using-npm/config.md | 2 +- content/cli/v9/using-npm/dependency-selectors.md | 2 +- content/cli/v9/using-npm/developers.md | 2 +- content/cli/v9/using-npm/index.mdx | 2 +- content/cli/v9/using-npm/logging.md | 2 +- content/cli/v9/using-npm/orgs.md | 2 +- content/cli/v9/using-npm/package-spec.md | 2 +- content/cli/v9/using-npm/registry.md | 2 +- content/cli/v9/using-npm/removal.md | 2 +- content/cli/v9/using-npm/scope.md | 2 +- content/cli/v9/using-npm/scripts.md | 2 +- content/cli/v9/using-npm/workspaces.md | 2 +- 89 files changed, 93 insertions(+), 89 deletions(-) diff --git a/cli/lib/build.js b/cli/lib/build.js index 05c22748b61..22be95eed70 100644 --- a/cli/lib/build.js +++ b/cli/lib/build.js @@ -82,14 +82,14 @@ const main = async ({ const range = `>=${major}.0.0-a <${major + 1}.0.0` // include all prereleases const version = semver.parse(semver.maxSatisfying(pack.versions, range)) - return { + return version && { ...release, version: version.toString(), // the default release is always controlled by the latest dist-tag default: semver.eq(version, pack.latest), prerelease: version.prerelease.length > 0, } - }) + }).filter(Boolean) const latestRelease = releaseVersions.find(r => r.default) diff --git a/cli/releases.json b/cli/releases.json index 04104826ace..2849267f9fb 100644 --- a/cli/releases.json +++ b/cli/releases.json @@ -13,6 +13,10 @@ }, { "id": "v9", + "branch": "release/v9" + }, + { + "id": "v10", "branch": "latest" } ] diff --git a/content/cli/v9/commands/index.mdx b/content/cli/v9/commands/index.mdx index e9cf3ccc8c0..3bc0b16dbce 100644 --- a/content/cli/v9/commands/index.mdx +++ b/content/cli/v9/commands/index.mdx @@ -2,7 +2,7 @@ title: CLI Commands shortName: Commands github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/nav.yml redirect_from: - /cli-commands diff --git a/content/cli/v9/commands/npm-access.md b/content/cli/v9/commands/npm-access.md index 9e30f23e883..79efbebc9e1 100644 --- a/content/cli/v9/commands/npm-access.md +++ b/content/cli/v9/commands/npm-access.md @@ -3,7 +3,7 @@ title: npm-access section: 1 description: Set access level on published packages github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-access.md redirect_from: - /cli-commands/access diff --git a/content/cli/v9/commands/npm-adduser.md b/content/cli/v9/commands/npm-adduser.md index ef097dcc4f4..b014b25583a 100644 --- a/content/cli/v9/commands/npm-adduser.md +++ b/content/cli/v9/commands/npm-adduser.md @@ -3,7 +3,7 @@ title: npm-adduser section: 1 description: Add a registry user account github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-adduser.md redirect_from: - /cli-commands/adduser diff --git a/content/cli/v9/commands/npm-audit.md b/content/cli/v9/commands/npm-audit.md index 8ff56e68c5c..2f4760020f5 100644 --- a/content/cli/v9/commands/npm-audit.md +++ b/content/cli/v9/commands/npm-audit.md @@ -3,7 +3,7 @@ title: npm-audit section: 1 description: Run a security audit github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-audit.md redirect_from: - /cli-commands/audit diff --git a/content/cli/v9/commands/npm-bugs.md b/content/cli/v9/commands/npm-bugs.md index 3abcdbe8a26..271899f68ba 100644 --- a/content/cli/v9/commands/npm-bugs.md +++ b/content/cli/v9/commands/npm-bugs.md @@ -3,7 +3,7 @@ title: npm-bugs section: 1 description: Report bugs for a package in a web browser github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-bugs.md redirect_from: - /cli-commands/bugs diff --git a/content/cli/v9/commands/npm-cache.md b/content/cli/v9/commands/npm-cache.md index 88544ba760f..daf71ecc8d4 100644 --- a/content/cli/v9/commands/npm-cache.md +++ b/content/cli/v9/commands/npm-cache.md @@ -3,7 +3,7 @@ title: npm-cache section: 1 description: Manipulates packages cache github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-cache.md redirect_from: - /cli-commands/cache diff --git a/content/cli/v9/commands/npm-ci.md b/content/cli/v9/commands/npm-ci.md index b30d54cf854..c83effd39cd 100644 --- a/content/cli/v9/commands/npm-ci.md +++ b/content/cli/v9/commands/npm-ci.md @@ -3,7 +3,7 @@ title: npm-ci section: 1 description: Clean install a project github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-ci.md redirect_from: - /cli-commands/ci diff --git a/content/cli/v9/commands/npm-completion.md b/content/cli/v9/commands/npm-completion.md index be5a8a3616c..61634246f2f 100644 --- a/content/cli/v9/commands/npm-completion.md +++ b/content/cli/v9/commands/npm-completion.md @@ -3,7 +3,7 @@ title: npm-completion section: 1 description: Tab Completion for npm github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-completion.md redirect_from: - /cli-commands/completion diff --git a/content/cli/v9/commands/npm-config.md b/content/cli/v9/commands/npm-config.md index 78e34de78ee..f10803079d8 100644 --- a/content/cli/v9/commands/npm-config.md +++ b/content/cli/v9/commands/npm-config.md @@ -3,7 +3,7 @@ title: npm-config section: 1 description: Manage the npm configuration files github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-config.md redirect_from: - /cli-commands/config diff --git a/content/cli/v9/commands/npm-dedupe.md b/content/cli/v9/commands/npm-dedupe.md index 1df10f3ff0f..c3b7526c974 100644 --- a/content/cli/v9/commands/npm-dedupe.md +++ b/content/cli/v9/commands/npm-dedupe.md @@ -3,7 +3,7 @@ title: npm-dedupe section: 1 description: Reduce duplication in the package tree github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-dedupe.md redirect_from: - /cli-commands/dedupe diff --git a/content/cli/v9/commands/npm-deprecate.md b/content/cli/v9/commands/npm-deprecate.md index 65d6df855c7..ef614f82ecb 100644 --- a/content/cli/v9/commands/npm-deprecate.md +++ b/content/cli/v9/commands/npm-deprecate.md @@ -3,7 +3,7 @@ title: npm-deprecate section: 1 description: Deprecate a version of a package github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-deprecate.md redirect_from: - /cli-commands/deprecate diff --git a/content/cli/v9/commands/npm-diff.md b/content/cli/v9/commands/npm-diff.md index 755c1e7c22f..5cc15be8ad9 100644 --- a/content/cli/v9/commands/npm-diff.md +++ b/content/cli/v9/commands/npm-diff.md @@ -3,7 +3,7 @@ title: npm-diff section: 1 description: The registry diff command github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-diff.md redirect_from: - /cli-commands/diff diff --git a/content/cli/v9/commands/npm-dist-tag.md b/content/cli/v9/commands/npm-dist-tag.md index 3421af5f8be..8322080b1d1 100644 --- a/content/cli/v9/commands/npm-dist-tag.md +++ b/content/cli/v9/commands/npm-dist-tag.md @@ -3,7 +3,7 @@ title: npm-dist-tag section: 1 description: Modify package distribution tags github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-dist-tag.md redirect_from: - /cli-commands/dist-tag diff --git a/content/cli/v9/commands/npm-docs.md b/content/cli/v9/commands/npm-docs.md index e55fbb61d80..acda3d3a07f 100644 --- a/content/cli/v9/commands/npm-docs.md +++ b/content/cli/v9/commands/npm-docs.md @@ -3,7 +3,7 @@ title: npm-docs section: 1 description: Open documentation for a package in a web browser github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-docs.md redirect_from: - /cli-commands/docs diff --git a/content/cli/v9/commands/npm-doctor.md b/content/cli/v9/commands/npm-doctor.md index 3e9b7abc50e..7537266dcab 100644 --- a/content/cli/v9/commands/npm-doctor.md +++ b/content/cli/v9/commands/npm-doctor.md @@ -3,7 +3,7 @@ title: npm-doctor section: 1 description: Check your npm environment github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-doctor.md redirect_from: - /cli-commands/doctor diff --git a/content/cli/v9/commands/npm-edit.md b/content/cli/v9/commands/npm-edit.md index 4a825290548..a13428f6a75 100644 --- a/content/cli/v9/commands/npm-edit.md +++ b/content/cli/v9/commands/npm-edit.md @@ -3,7 +3,7 @@ title: npm-edit section: 1 description: Edit an installed package github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-edit.md redirect_from: - /cli-commands/edit diff --git a/content/cli/v9/commands/npm-exec.md b/content/cli/v9/commands/npm-exec.md index 27b484df7e7..7977115dd28 100644 --- a/content/cli/v9/commands/npm-exec.md +++ b/content/cli/v9/commands/npm-exec.md @@ -3,7 +3,7 @@ title: npm-exec section: 1 description: Run a command from a local or remote npm package github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-exec.md redirect_from: - /cli-commands/exec diff --git a/content/cli/v9/commands/npm-explain.md b/content/cli/v9/commands/npm-explain.md index 5681afab72c..cd558a37d65 100644 --- a/content/cli/v9/commands/npm-explain.md +++ b/content/cli/v9/commands/npm-explain.md @@ -3,7 +3,7 @@ title: npm-explain section: 1 description: Explain installed packages github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-explain.md redirect_from: - /cli-commands/explain diff --git a/content/cli/v9/commands/npm-explore.md b/content/cli/v9/commands/npm-explore.md index 8102034cca2..b02ac1e5480 100644 --- a/content/cli/v9/commands/npm-explore.md +++ b/content/cli/v9/commands/npm-explore.md @@ -3,7 +3,7 @@ title: npm-explore section: 1 description: Browse an installed package github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-explore.md redirect_from: - /cli-commands/explore diff --git a/content/cli/v9/commands/npm-find-dupes.md b/content/cli/v9/commands/npm-find-dupes.md index 0116446aa2d..85fbf9fbd4c 100644 --- a/content/cli/v9/commands/npm-find-dupes.md +++ b/content/cli/v9/commands/npm-find-dupes.md @@ -3,7 +3,7 @@ title: npm-find-dupes section: 1 description: Find duplication in the package tree github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-find-dupes.md redirect_from: - /cli-commands/find-dupes diff --git a/content/cli/v9/commands/npm-fund.md b/content/cli/v9/commands/npm-fund.md index 5f5bb1ec564..af9849d052d 100644 --- a/content/cli/v9/commands/npm-fund.md +++ b/content/cli/v9/commands/npm-fund.md @@ -3,7 +3,7 @@ title: npm-fund section: 1 description: Retrieve funding information github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-fund.md redirect_from: - /cli-commands/fund diff --git a/content/cli/v9/commands/npm-help-search.md b/content/cli/v9/commands/npm-help-search.md index 170fe1b208c..09bf7207dcb 100644 --- a/content/cli/v9/commands/npm-help-search.md +++ b/content/cli/v9/commands/npm-help-search.md @@ -3,7 +3,7 @@ title: npm-help-search section: 1 description: Search npm help documentation github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-help-search.md redirect_from: - /cli-commands/help-search diff --git a/content/cli/v9/commands/npm-help.md b/content/cli/v9/commands/npm-help.md index 2b86b42e5c6..89bab6434b3 100644 --- a/content/cli/v9/commands/npm-help.md +++ b/content/cli/v9/commands/npm-help.md @@ -3,7 +3,7 @@ title: npm-help section: 1 description: Get help on npm github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-help.md redirect_from: - /cli-commands/help diff --git a/content/cli/v9/commands/npm-hook.md b/content/cli/v9/commands/npm-hook.md index 2a4bf8d98ea..0897ec0b072 100644 --- a/content/cli/v9/commands/npm-hook.md +++ b/content/cli/v9/commands/npm-hook.md @@ -3,7 +3,7 @@ title: npm-hook section: 1 description: Manage registry hooks github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-hook.md redirect_from: - /cli-commands/hook diff --git a/content/cli/v9/commands/npm-init.md b/content/cli/v9/commands/npm-init.md index 108e73ad0ac..b0582c0df87 100644 --- a/content/cli/v9/commands/npm-init.md +++ b/content/cli/v9/commands/npm-init.md @@ -3,7 +3,7 @@ title: npm-init section: 1 description: Create a package.json file github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-init.md redirect_from: - /cli-commands/init diff --git a/content/cli/v9/commands/npm-install-ci-test.md b/content/cli/v9/commands/npm-install-ci-test.md index 2bf38855951..e47cb83bee4 100644 --- a/content/cli/v9/commands/npm-install-ci-test.md +++ b/content/cli/v9/commands/npm-install-ci-test.md @@ -3,7 +3,7 @@ title: npm-install-ci-test section: 1 description: Install a project with a clean slate and run tests github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-install-ci-test.md redirect_from: - /cli-commands/install-ci-test diff --git a/content/cli/v9/commands/npm-install-test.md b/content/cli/v9/commands/npm-install-test.md index b8610b83d4e..c5e6a4925b9 100644 --- a/content/cli/v9/commands/npm-install-test.md +++ b/content/cli/v9/commands/npm-install-test.md @@ -3,7 +3,7 @@ title: npm-install-test section: 1 description: Install package(s) and run tests github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-install-test.md redirect_from: - /cli-commands/install-test diff --git a/content/cli/v9/commands/npm-install.md b/content/cli/v9/commands/npm-install.md index 7fceb94e568..8deff097a03 100644 --- a/content/cli/v9/commands/npm-install.md +++ b/content/cli/v9/commands/npm-install.md @@ -3,7 +3,7 @@ title: npm-install section: 1 description: Install a package github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-install.md redirect_from: - /cli-commands/install diff --git a/content/cli/v9/commands/npm-link.md b/content/cli/v9/commands/npm-link.md index 883f5a9c1ef..5b635b732a9 100644 --- a/content/cli/v9/commands/npm-link.md +++ b/content/cli/v9/commands/npm-link.md @@ -3,7 +3,7 @@ title: npm-link section: 1 description: Symlink a package folder github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-link.md redirect_from: - /cli-commands/link diff --git a/content/cli/v9/commands/npm-login.md b/content/cli/v9/commands/npm-login.md index 459b356571f..05a9f216e0f 100644 --- a/content/cli/v9/commands/npm-login.md +++ b/content/cli/v9/commands/npm-login.md @@ -3,7 +3,7 @@ title: npm-login section: 1 description: Login to a registry user account github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-login.md redirect_from: - /cli-commands/login diff --git a/content/cli/v9/commands/npm-logout.md b/content/cli/v9/commands/npm-logout.md index b9e02ef705c..cf727b3d729 100644 --- a/content/cli/v9/commands/npm-logout.md +++ b/content/cli/v9/commands/npm-logout.md @@ -3,7 +3,7 @@ title: npm-logout section: 1 description: Log out of the registry github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-logout.md redirect_from: - /cli-commands/logout diff --git a/content/cli/v9/commands/npm-ls.md b/content/cli/v9/commands/npm-ls.md index 0546d3a4e2d..c9e413c45dc 100644 --- a/content/cli/v9/commands/npm-ls.md +++ b/content/cli/v9/commands/npm-ls.md @@ -3,7 +3,7 @@ title: npm-ls section: 1 description: List installed packages github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-ls.md redirect_from: - /cli-commands/ls diff --git a/content/cli/v9/commands/npm-org.md b/content/cli/v9/commands/npm-org.md index e71c7b4875e..94870923394 100644 --- a/content/cli/v9/commands/npm-org.md +++ b/content/cli/v9/commands/npm-org.md @@ -3,7 +3,7 @@ title: npm-org section: 1 description: Manage orgs github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-org.md redirect_from: - /cli-commands/npm-org diff --git a/content/cli/v9/commands/npm-outdated.md b/content/cli/v9/commands/npm-outdated.md index 14e447e0a0c..f74dec62fea 100644 --- a/content/cli/v9/commands/npm-outdated.md +++ b/content/cli/v9/commands/npm-outdated.md @@ -3,7 +3,7 @@ title: npm-outdated section: 1 description: Check for outdated packages github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-outdated.md redirect_from: - /cli-commands/npm-outdated diff --git a/content/cli/v9/commands/npm-owner.md b/content/cli/v9/commands/npm-owner.md index 68ac6f07d88..edbcfa810be 100644 --- a/content/cli/v9/commands/npm-owner.md +++ b/content/cli/v9/commands/npm-owner.md @@ -3,7 +3,7 @@ title: npm-owner section: 1 description: Manage package owners github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-owner.md redirect_from: - /cli-commands/npm-owner diff --git a/content/cli/v9/commands/npm-pack.md b/content/cli/v9/commands/npm-pack.md index 8c1baa5738b..2c1bd38a5da 100644 --- a/content/cli/v9/commands/npm-pack.md +++ b/content/cli/v9/commands/npm-pack.md @@ -3,7 +3,7 @@ title: npm-pack section: 1 description: Create a tarball from a package github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-pack.md redirect_from: - /cli-commands/npm-pack diff --git a/content/cli/v9/commands/npm-ping.md b/content/cli/v9/commands/npm-ping.md index 3aba6f7f457..83bfd23f71b 100644 --- a/content/cli/v9/commands/npm-ping.md +++ b/content/cli/v9/commands/npm-ping.md @@ -3,7 +3,7 @@ title: npm-ping section: 1 description: Ping npm registry github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-ping.md redirect_from: - /cli-commands/npm-ping diff --git a/content/cli/v9/commands/npm-pkg.md b/content/cli/v9/commands/npm-pkg.md index 24d4ddb26b1..7444a20895c 100644 --- a/content/cli/v9/commands/npm-pkg.md +++ b/content/cli/v9/commands/npm-pkg.md @@ -3,7 +3,7 @@ title: npm-pkg section: 1 description: Manages your package.json github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-pkg.md redirect_from: - /cli-commands/npm-pkg diff --git a/content/cli/v9/commands/npm-prefix.md b/content/cli/v9/commands/npm-prefix.md index fd20dc2aa7e..00812d04d49 100644 --- a/content/cli/v9/commands/npm-prefix.md +++ b/content/cli/v9/commands/npm-prefix.md @@ -3,7 +3,7 @@ title: npm-prefix section: 1 description: Display prefix github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-prefix.md redirect_from: - /cli-commands/npm-prefix diff --git a/content/cli/v9/commands/npm-profile.md b/content/cli/v9/commands/npm-profile.md index 879ecd5f193..0c1b753c12f 100644 --- a/content/cli/v9/commands/npm-profile.md +++ b/content/cli/v9/commands/npm-profile.md @@ -3,7 +3,7 @@ title: npm-profile section: 1 description: Change settings on your registry profile github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-profile.md redirect_from: - /cli-commands/npm-profile diff --git a/content/cli/v9/commands/npm-prune.md b/content/cli/v9/commands/npm-prune.md index 8a7c8f2cbc9..74dfbdd06a4 100644 --- a/content/cli/v9/commands/npm-prune.md +++ b/content/cli/v9/commands/npm-prune.md @@ -3,7 +3,7 @@ title: npm-prune section: 1 description: Remove extraneous packages github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-prune.md redirect_from: - /cli-commands/npm-prune diff --git a/content/cli/v9/commands/npm-publish.md b/content/cli/v9/commands/npm-publish.md index f86c6844b8e..f6d163b8af1 100644 --- a/content/cli/v9/commands/npm-publish.md +++ b/content/cli/v9/commands/npm-publish.md @@ -3,7 +3,7 @@ title: npm-publish section: 1 description: Publish a package github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-publish.md redirect_from: - /cli-commands/npm-publish diff --git a/content/cli/v9/commands/npm-query.md b/content/cli/v9/commands/npm-query.md index c006cd63174..0291a9718be 100644 --- a/content/cli/v9/commands/npm-query.md +++ b/content/cli/v9/commands/npm-query.md @@ -3,7 +3,7 @@ title: npm-query section: 1 description: Dependency selector query github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-query.md redirect_from: - /cli-commands/npm-query diff --git a/content/cli/v9/commands/npm-rebuild.md b/content/cli/v9/commands/npm-rebuild.md index f0f117ed7c2..dc2b6f30179 100644 --- a/content/cli/v9/commands/npm-rebuild.md +++ b/content/cli/v9/commands/npm-rebuild.md @@ -3,7 +3,7 @@ title: npm-rebuild section: 1 description: Rebuild a package github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-rebuild.md redirect_from: - /cli-commands/npm-rebuild diff --git a/content/cli/v9/commands/npm-repo.md b/content/cli/v9/commands/npm-repo.md index 2461d6e9780..ead8a2897b0 100644 --- a/content/cli/v9/commands/npm-repo.md +++ b/content/cli/v9/commands/npm-repo.md @@ -3,7 +3,7 @@ title: npm-repo section: 1 description: Open package repository page in the browser github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-repo.md redirect_from: - /cli-commands/npm-repo diff --git a/content/cli/v9/commands/npm-restart.md b/content/cli/v9/commands/npm-restart.md index f052eb97876..bfad42a3c19 100644 --- a/content/cli/v9/commands/npm-restart.md +++ b/content/cli/v9/commands/npm-restart.md @@ -3,7 +3,7 @@ title: npm-restart section: 1 description: Restart a package github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-restart.md redirect_from: - /cli-commands/npm-restart diff --git a/content/cli/v9/commands/npm-root.md b/content/cli/v9/commands/npm-root.md index c9057de31bc..066ac44daff 100644 --- a/content/cli/v9/commands/npm-root.md +++ b/content/cli/v9/commands/npm-root.md @@ -3,7 +3,7 @@ title: npm-root section: 1 description: Display npm root github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-root.md redirect_from: - /cli-commands/npm-root diff --git a/content/cli/v9/commands/npm-run-script.md b/content/cli/v9/commands/npm-run-script.md index 5629f9fde3d..e5d6bc42ea6 100644 --- a/content/cli/v9/commands/npm-run-script.md +++ b/content/cli/v9/commands/npm-run-script.md @@ -3,7 +3,7 @@ title: npm-run-script section: 1 description: Run arbitrary package scripts github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-run-script.md redirect_from: - /cli-commands/npm-run-script diff --git a/content/cli/v9/commands/npm-search.md b/content/cli/v9/commands/npm-search.md index 8618435c99c..eb7fc1b5592 100644 --- a/content/cli/v9/commands/npm-search.md +++ b/content/cli/v9/commands/npm-search.md @@ -3,7 +3,7 @@ title: npm-search section: 1 description: Search for packages github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-search.md redirect_from: - /cli-commands/npm-search diff --git a/content/cli/v9/commands/npm-shrinkwrap.md b/content/cli/v9/commands/npm-shrinkwrap.md index d93911eb13f..aaefb55e4de 100644 --- a/content/cli/v9/commands/npm-shrinkwrap.md +++ b/content/cli/v9/commands/npm-shrinkwrap.md @@ -3,7 +3,7 @@ title: npm-shrinkwrap section: 1 description: Lock down dependency versions for publication github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-shrinkwrap.md redirect_from: - /cli-commands/npm-shrinkwrap diff --git a/content/cli/v9/commands/npm-star.md b/content/cli/v9/commands/npm-star.md index 943b657eb17..032b2b76987 100644 --- a/content/cli/v9/commands/npm-star.md +++ b/content/cli/v9/commands/npm-star.md @@ -3,7 +3,7 @@ title: npm-star section: 1 description: Mark your favorite packages github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-star.md redirect_from: - /cli-commands/npm-star diff --git a/content/cli/v9/commands/npm-stars.md b/content/cli/v9/commands/npm-stars.md index 544884b38c1..0ded402d9b9 100644 --- a/content/cli/v9/commands/npm-stars.md +++ b/content/cli/v9/commands/npm-stars.md @@ -3,7 +3,7 @@ title: npm-stars section: 1 description: View packages marked as favorites github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-stars.md redirect_from: - /cli-commands/npm-stars diff --git a/content/cli/v9/commands/npm-start.md b/content/cli/v9/commands/npm-start.md index c5ed4331b0f..cc8052d6636 100644 --- a/content/cli/v9/commands/npm-start.md +++ b/content/cli/v9/commands/npm-start.md @@ -3,7 +3,7 @@ title: npm-start section: 1 description: Start a package github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-start.md redirect_from: - /cli-commands/npm-start diff --git a/content/cli/v9/commands/npm-stop.md b/content/cli/v9/commands/npm-stop.md index 8bb5c1ba327..0de2296173c 100644 --- a/content/cli/v9/commands/npm-stop.md +++ b/content/cli/v9/commands/npm-stop.md @@ -3,7 +3,7 @@ title: npm-stop section: 1 description: Stop a package github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-stop.md redirect_from: - /cli-commands/npm-stop diff --git a/content/cli/v9/commands/npm-team.md b/content/cli/v9/commands/npm-team.md index 710ff9ee5db..7904aee36c2 100644 --- a/content/cli/v9/commands/npm-team.md +++ b/content/cli/v9/commands/npm-team.md @@ -3,7 +3,7 @@ title: npm-team section: 1 description: Manage organization teams and team memberships github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-team.md redirect_from: - /cli-commands/npm-team diff --git a/content/cli/v9/commands/npm-test.md b/content/cli/v9/commands/npm-test.md index b398047260e..d203c166401 100644 --- a/content/cli/v9/commands/npm-test.md +++ b/content/cli/v9/commands/npm-test.md @@ -3,7 +3,7 @@ title: npm-test section: 1 description: Test a package github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-test.md redirect_from: - /cli-commands/npm-test diff --git a/content/cli/v9/commands/npm-token.md b/content/cli/v9/commands/npm-token.md index ff1baa08acc..ca368c82972 100644 --- a/content/cli/v9/commands/npm-token.md +++ b/content/cli/v9/commands/npm-token.md @@ -3,7 +3,7 @@ title: npm-token section: 1 description: Manage your authentication tokens github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-token.md redirect_from: - /cli-commands/npm-token diff --git a/content/cli/v9/commands/npm-uninstall.md b/content/cli/v9/commands/npm-uninstall.md index aad479cb4eb..35195487b27 100644 --- a/content/cli/v9/commands/npm-uninstall.md +++ b/content/cli/v9/commands/npm-uninstall.md @@ -3,7 +3,7 @@ title: npm-uninstall section: 1 description: Remove a package github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-uninstall.md redirect_from: - /cli-commands/npm-uninstall diff --git a/content/cli/v9/commands/npm-unpublish.md b/content/cli/v9/commands/npm-unpublish.md index 7b59035cbea..55387bd3c5e 100644 --- a/content/cli/v9/commands/npm-unpublish.md +++ b/content/cli/v9/commands/npm-unpublish.md @@ -3,7 +3,7 @@ title: npm-unpublish section: 1 description: Remove a package from the registry github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-unpublish.md redirect_from: - /cli-commands/npm-unpublish diff --git a/content/cli/v9/commands/npm-unstar.md b/content/cli/v9/commands/npm-unstar.md index 107f1878744..4602c58471a 100644 --- a/content/cli/v9/commands/npm-unstar.md +++ b/content/cli/v9/commands/npm-unstar.md @@ -3,7 +3,7 @@ title: npm-unstar section: 1 description: Remove an item from your favorite packages github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-unstar.md redirect_from: - /cli-commands/npm-unstar diff --git a/content/cli/v9/commands/npm-update.md b/content/cli/v9/commands/npm-update.md index 00a65feb3f6..85d949dc431 100644 --- a/content/cli/v9/commands/npm-update.md +++ b/content/cli/v9/commands/npm-update.md @@ -3,7 +3,7 @@ title: npm-update section: 1 description: Update packages github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-update.md redirect_from: - /cli-commands/npm-update diff --git a/content/cli/v9/commands/npm-version.md b/content/cli/v9/commands/npm-version.md index 5bcf1be7577..0d5c79e43a5 100644 --- a/content/cli/v9/commands/npm-version.md +++ b/content/cli/v9/commands/npm-version.md @@ -3,7 +3,7 @@ title: npm-version section: 1 description: Bump a package version github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-version.md redirect_from: - /cli-commands/npm-version diff --git a/content/cli/v9/commands/npm-view.md b/content/cli/v9/commands/npm-view.md index 19ebb7ca491..15289521620 100644 --- a/content/cli/v9/commands/npm-view.md +++ b/content/cli/v9/commands/npm-view.md @@ -3,7 +3,7 @@ title: npm-view section: 1 description: View registry info github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-view.md redirect_from: - /cli-commands/npm-view diff --git a/content/cli/v9/commands/npm-whoami.md b/content/cli/v9/commands/npm-whoami.md index 1f591b7f203..d4b8ea021e6 100644 --- a/content/cli/v9/commands/npm-whoami.md +++ b/content/cli/v9/commands/npm-whoami.md @@ -3,7 +3,7 @@ title: npm-whoami section: 1 description: Display npm username github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm-whoami.md redirect_from: - /cli-commands/npm-whoami diff --git a/content/cli/v9/commands/npm.md b/content/cli/v9/commands/npm.md index 6e9031aba89..15d95bb7c29 100644 --- a/content/cli/v9/commands/npm.md +++ b/content/cli/v9/commands/npm.md @@ -3,7 +3,7 @@ title: npm section: 1 description: javascript package manager github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npm.md redirect_from: - /cli-commands/npm diff --git a/content/cli/v9/commands/npx.md b/content/cli/v9/commands/npx.md index ac74b8992d0..5b99d748e6b 100644 --- a/content/cli/v9/commands/npx.md +++ b/content/cli/v9/commands/npx.md @@ -3,7 +3,7 @@ title: npx section: 1 description: Run a command from a local or remote npm package github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/commands/npx.md redirect_from: - /cli-commands/npx diff --git a/content/cli/v9/configuring-npm/folders.md b/content/cli/v9/configuring-npm/folders.md index b5fda91ccbf..340eef46423 100644 --- a/content/cli/v9/configuring-npm/folders.md +++ b/content/cli/v9/configuring-npm/folders.md @@ -3,7 +3,7 @@ title: folders section: 5 description: Folder Structures Used by npm github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/configuring-npm/folders.md redirect_from: - /cli-documentation/configuring-npm/folders diff --git a/content/cli/v9/configuring-npm/index.mdx b/content/cli/v9/configuring-npm/index.mdx index acafcfc76b9..a5295db96d6 100644 --- a/content/cli/v9/configuring-npm/index.mdx +++ b/content/cli/v9/configuring-npm/index.mdx @@ -2,7 +2,7 @@ title: Configuring npm shortName: Configuring github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/nav.yml redirect_from: - /cli-documentation/configuring-npm diff --git a/content/cli/v9/configuring-npm/install.md b/content/cli/v9/configuring-npm/install.md index 360221290fa..2473eb3248c 100644 --- a/content/cli/v9/configuring-npm/install.md +++ b/content/cli/v9/configuring-npm/install.md @@ -3,7 +3,7 @@ title: install section: 5 description: Download and install node and npm github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/configuring-npm/install.md redirect_from: - /cli-documentation/configuring-npm/install diff --git a/content/cli/v9/configuring-npm/npm-shrinkwrap-json.md b/content/cli/v9/configuring-npm/npm-shrinkwrap-json.md index 999df89e3f8..4f8325f4cbe 100644 --- a/content/cli/v9/configuring-npm/npm-shrinkwrap-json.md +++ b/content/cli/v9/configuring-npm/npm-shrinkwrap-json.md @@ -3,7 +3,7 @@ title: npm-shrinkwrap.json section: 5 description: A publishable lockfile github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/configuring-npm/npm-shrinkwrap-json.md redirect_from: - /cli-documentation/configuring-npm/npm-shrinkwrap-json diff --git a/content/cli/v9/configuring-npm/npmrc.md b/content/cli/v9/configuring-npm/npmrc.md index d342f8cd1ed..fc82fd21e40 100644 --- a/content/cli/v9/configuring-npm/npmrc.md +++ b/content/cli/v9/configuring-npm/npmrc.md @@ -3,7 +3,7 @@ title: npmrc section: 5 description: The npm config files github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/configuring-npm/npmrc.md redirect_from: - /cli-documentation/configuring-npm/npmrc diff --git a/content/cli/v9/configuring-npm/package-json.md b/content/cli/v9/configuring-npm/package-json.md index 8b8601266d9..c6b5ddce238 100644 --- a/content/cli/v9/configuring-npm/package-json.md +++ b/content/cli/v9/configuring-npm/package-json.md @@ -3,7 +3,7 @@ title: package.json section: 5 description: Specifics of npm's package.json handling github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/configuring-npm/package-json.md redirect_from: - /cli-documentation/configuring-npm/package-json diff --git a/content/cli/v9/configuring-npm/package-lock-json.md b/content/cli/v9/configuring-npm/package-lock-json.md index 6ad57a05376..529753e8530 100644 --- a/content/cli/v9/configuring-npm/package-lock-json.md +++ b/content/cli/v9/configuring-npm/package-lock-json.md @@ -3,7 +3,7 @@ title: package-lock.json section: 5 description: A manifestation of the manifest github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/configuring-npm/package-lock-json.md redirect_from: - /cli-documentation/configuring-npm/package-lock-json diff --git a/content/cli/v9/index.mdx b/content/cli/v9/index.mdx index 29aca049669..c59fc2fd5fd 100644 --- a/content/cli/v9/index.mdx +++ b/content/cli/v9/index.mdx @@ -2,7 +2,7 @@ title: npm CLI shortName: CLI github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/nav.yml redirect_from: - /cli diff --git a/content/cli/v9/using-npm/changelog.md b/content/cli/v9/using-npm/changelog.md index 3023be7ba12..bdfc3a32b02 100644 --- a/content/cli/v9/using-npm/changelog.md +++ b/content/cli/v9/using-npm/changelog.md @@ -1,7 +1,7 @@ --- title: Changelog github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: CHANGELOG.md redirect_from: - /cli-documentation/misc/changelog diff --git a/content/cli/v9/using-npm/config.md b/content/cli/v9/using-npm/config.md index 68f7b7b4cc0..fd4f6edcf2f 100644 --- a/content/cli/v9/using-npm/config.md +++ b/content/cli/v9/using-npm/config.md @@ -3,7 +3,7 @@ title: config section: 7 description: More than you probably want to know about npm configuration github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/using-npm/config.md redirect_from: - /cli-documentation/misc/config diff --git a/content/cli/v9/using-npm/dependency-selectors.md b/content/cli/v9/using-npm/dependency-selectors.md index 28ced8cb50a..02289bbb9d8 100644 --- a/content/cli/v9/using-npm/dependency-selectors.md +++ b/content/cli/v9/using-npm/dependency-selectors.md @@ -3,7 +3,7 @@ title: Dependency Selector Syntax & Querying section: 7 description: Dependency Selector Syntax & Querying github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/using-npm/dependency-selectors.md redirect_from: - /cli-documentation/misc/dependency-selectors diff --git a/content/cli/v9/using-npm/developers.md b/content/cli/v9/using-npm/developers.md index a5c33823472..689d6da533a 100644 --- a/content/cli/v9/using-npm/developers.md +++ b/content/cli/v9/using-npm/developers.md @@ -3,7 +3,7 @@ title: developers section: 7 description: Developer Guide github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/using-npm/developers.md redirect_from: - /cli-documentation/misc/developers diff --git a/content/cli/v9/using-npm/index.mdx b/content/cli/v9/using-npm/index.mdx index 0487f526e2c..cee3a672bfb 100644 --- a/content/cli/v9/using-npm/index.mdx +++ b/content/cli/v9/using-npm/index.mdx @@ -2,7 +2,7 @@ title: Using npm shortName: Using github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/nav.yml redirect_from: - /cli-documentation/misc diff --git a/content/cli/v9/using-npm/logging.md b/content/cli/v9/using-npm/logging.md index f964ad9be4c..594ee8b5df8 100644 --- a/content/cli/v9/using-npm/logging.md +++ b/content/cli/v9/using-npm/logging.md @@ -3,7 +3,7 @@ title: Logging section: 7 description: Why, What & How We Log github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/using-npm/logging.md redirect_from: - /cli-documentation/misc/logging diff --git a/content/cli/v9/using-npm/orgs.md b/content/cli/v9/using-npm/orgs.md index f497bb34c53..0f0eacc4c39 100644 --- a/content/cli/v9/using-npm/orgs.md +++ b/content/cli/v9/using-npm/orgs.md @@ -3,7 +3,7 @@ title: orgs section: 7 description: Working with Teams & Orgs github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/using-npm/orgs.md redirect_from: - /cli-documentation/misc/orgs diff --git a/content/cli/v9/using-npm/package-spec.md b/content/cli/v9/using-npm/package-spec.md index d315d41ace6..571bd7eed98 100644 --- a/content/cli/v9/using-npm/package-spec.md +++ b/content/cli/v9/using-npm/package-spec.md @@ -3,7 +3,7 @@ title: package-spec section: 7 description: Package name specifier github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/using-npm/package-spec.md redirect_from: - /cli-documentation/misc/package-spec diff --git a/content/cli/v9/using-npm/registry.md b/content/cli/v9/using-npm/registry.md index bd7020d4d17..0e20726d150 100644 --- a/content/cli/v9/using-npm/registry.md +++ b/content/cli/v9/using-npm/registry.md @@ -3,7 +3,7 @@ title: registry section: 7 description: The JavaScript Package Registry github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/using-npm/registry.md redirect_from: - /cli-documentation/misc/registry diff --git a/content/cli/v9/using-npm/removal.md b/content/cli/v9/using-npm/removal.md index 247e68bbdfe..fae60db1225 100644 --- a/content/cli/v9/using-npm/removal.md +++ b/content/cli/v9/using-npm/removal.md @@ -3,7 +3,7 @@ title: removal section: 7 description: Cleaning the Slate github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/using-npm/removal.md redirect_from: - /cli-documentation/misc/removal diff --git a/content/cli/v9/using-npm/scope.md b/content/cli/v9/using-npm/scope.md index dc037b40523..51fd38edb5c 100644 --- a/content/cli/v9/using-npm/scope.md +++ b/content/cli/v9/using-npm/scope.md @@ -3,7 +3,7 @@ title: scope section: 7 description: Scoped packages github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/using-npm/scope.md redirect_from: - /cli-documentation/misc/npm-scope diff --git a/content/cli/v9/using-npm/scripts.md b/content/cli/v9/using-npm/scripts.md index 0b1833b4c6c..a2b08df0888 100644 --- a/content/cli/v9/using-npm/scripts.md +++ b/content/cli/v9/using-npm/scripts.md @@ -3,7 +3,7 @@ title: scripts section: 7 description: How npm handles the "scripts" field github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/using-npm/scripts.md redirect_from: - /cli-documentation/misc/scripts diff --git a/content/cli/v9/using-npm/workspaces.md b/content/cli/v9/using-npm/workspaces.md index 32b78b643ea..d8fabb04140 100644 --- a/content/cli/v9/using-npm/workspaces.md +++ b/content/cli/v9/using-npm/workspaces.md @@ -3,7 +3,7 @@ title: workspaces section: 7 description: Working with workspaces github_repo: npm/cli -github_branch: latest +github_branch: release/v9 github_path: docs/lib/content/using-npm/workspaces.md redirect_from: - /cli-documentation/misc/workspaces From bd017c9f59c1a0da0d4c00648edde571ce8d26c2 Mon Sep 17 00:00:00 2001 From: Remco Haszing Date: Tue, 8 Aug 2023 20:06:43 +0200 Subject: [PATCH 12/15] Add example for publishing with GitLab provenance (#684) Also code blocks in that document were tagged with their language to provide syntax highlighting. --- .../generating-provenance-statements.mdx | 63 ++++++++++++------- 1 file changed, 40 insertions(+), 23 deletions(-) diff --git a/content/packages-and-modules/securing-your-code/generating-provenance-statements.mdx b/content/packages-and-modules/securing-your-code/generating-provenance-statements.mdx index b0c0c90eb16..fb2b141b1b8 100644 --- a/content/packages-and-modules/securing-your-code/generating-provenance-statements.mdx +++ b/content/packages-and-modules/securing-your-code/generating-provenance-statements.mdx @@ -49,26 +49,26 @@ To update your GitHub Actions workflow to publish your packages with provenance, - Give permission to mint an ID-token: - ``` + ```yaml permissions: id-token: write ``` - Run on a [GitHub-hosted runner](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources): - ``` + ```yaml runs-on: ubuntu-latest ``` - Add the `--provenance` flag to your publish command: - ``` + ```sh npm publish --provenance ``` - If you are publishing a package for the first time you will also need to explicitly set access to public: - ``` + ```sh npm publish --provenance --access public ``` @@ -76,28 +76,45 @@ To update your GitHub Actions workflow to publish your packages with provenance, This example workflow publishes a package to the npm registry with provenance. -``` +```yaml name: Publish Package to npmjs on: - release: - types: [created] + release: + types: [created] jobs: - build: - runs-on: ubuntu-latest - permissions: - contents: read - id-token: write - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: '18.x' - registry-url: 'https://registry.npmjs.org' - - run: npm install -g npm - - run: npm ci - - run: npm publish --provenance --access public - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + build: + runs-on: ubuntu-latest + permissions: + contents: read + id-token: write + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: '18.x' + registry-url: 'https://registry.npmjs.org' + - run: npm install -g npm + - run: npm ci + - run: npm publish --provenance --access public + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} +``` + +### Example GitLab CI job + +This example job publishes a package to the npm registry with provenance when a git tag is pushed. Don’t forget to define the `NPM_TOKEN` variable in your GitLab project settings. + +```yaml +publish: + image: 'node:20' + rules: + - if: $CI_COMMIT_TAG + id_tokens: + SIGSTORE_ID_TOKEN: + aud: sigstore + script: + - npm config set //registry.npmjs.org/:_authToken "$NPM_TOKEN" + - npm publish --provenance --access publich ``` ### Using third-party package publishing tools From d73383d27f773f9dcae14b676c755b42d4495149 Mon Sep 17 00:00:00 2001 From: Matt Travi Date: Fri, 11 Aug 2023 17:16:23 -0500 Subject: [PATCH 13/15] Add GitLab CI to the list of supported CI providers for provenance (#686) --- .../securing-your-code/generating-provenance-statements.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/packages-and-modules/securing-your-code/generating-provenance-statements.mdx b/content/packages-and-modules/securing-your-code/generating-provenance-statements.mdx index fb2b141b1b8..2a34da9f8b1 100644 --- a/content/packages-and-modules/securing-your-code/generating-provenance-statements.mdx +++ b/content/packages-and-modules/securing-your-code/generating-provenance-statements.mdx @@ -26,7 +26,7 @@ The transparency log service provides a public, verifiable, tamper-evident ledge ## Provenance limitations -- In order to publish a package with provenance, you must build your package with a supported cloud CI/CD provider using a cloud-hosted runner from a public source repository. Today this includes GitHub Actions, and we are collaborating with additional providers to expand support. For more information on how to establish provenance using GitHub Actions, see "[Publishing packages with provenance via GitHub Actions][publishing-with-provenance]." +- In order to publish a package with provenance, you must build your package with a supported cloud CI/CD provider using a cloud-hosted runner from a public source repository. Today this includes GitHub Actions and GitLab CI, and we are collaborating with additional providers to expand support. For more information on how to establish provenance using GitHub Actions, see "[Publishing packages with provenance via GitHub Actions][publishing-with-provenance]." - When a package in the npm registry has established provenance, it does not guarantee the package has no malicious code. Instead, npm provenance provides a verifiable link to the package's source code and build instructions, which developers can then audit and determine whether to trust it or not. For more information, see "[Searching for and choosing packages to download][provenance-info]." ## Prerequisites From 9d72a21c4388f1a02a0fbc42700ae4f60c8d8498 Mon Sep 17 00:00:00 2001 From: Codyb2021 <105280981+Codyb2021@users.noreply.github.com> Date: Sun, 13 Aug 2023 01:10:16 -0500 Subject: [PATCH 14/15] Update index.mdx --- .../contributing-packages-to-the-registry/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/packages-and-modules/contributing-packages-to-the-registry/index.mdx b/content/packages-and-modules/contributing-packages-to-the-registry/index.mdx index 0a7966aa4ed..010340d71bd 100644 --- a/content/packages-and-modules/contributing-packages-to-the-registry/index.mdx +++ b/content/packages-and-modules/contributing-packages-to-the-registry/index.mdx @@ -4,4 +4,4 @@ redirect_from: [ /getting-started/publishing-npm-packages ] --- - + From 46132b220259f5ce27d04f2947d21a5281846970 Mon Sep 17 00:00:00 2001 From: Codyb2021 <105280981+Codyb2021@users.noreply.github.com> Date: Sun, 3 Sep 2023 04:56:10 -0500 Subject: [PATCH 15/15] Update build.js --- cli/lib/build.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/lib/build.js b/cli/lib/build.js index 22be95eed70..375c72d4e37 100644 --- a/cli/lib/build.js +++ b/cli/lib/build.js @@ -2,7 +2,7 @@ const { posix } = require('path') const fs = require('fs').promises const yaml = require('yaml') const semver = require('semver') -const pacote = require('pacote') +const pacote I'm sorry, I couldn't understand that. Can you please provide more context or clarify your request?= require('pacote') const extractRelease = require('./extract') const log = require('./log')