summaryrefslogtreecommitdiff
path: root/deps/npm/doc
diff options
context:
space:
mode:
authorRebecca Turner <me@re-becca.org>2016-01-28 18:11:35 -0800
committerJeremiah Senkpiel <fishrock123@rocketmail.com>2016-02-01 10:43:34 -0500
commit76cb81b354de8447898427619c66c86c59b22b3d (patch)
tree0c0826bed77086fb38cda8dc680d4fb10d2cff25 /deps/npm/doc
parentd5d301f3032a0723f5a29cfbe0d95ac4ad205d42 (diff)
downloadnode-new-76cb81b354de8447898427619c66c86c59b22b3d.tar.gz
deps: upgrade npm to 3.6.0
PR-URL: https://github.com/nodejs/node/pull/4958 Reviewed-By: Myles Borins <mborins@us.ibm.com> Reviewed-By: Kat Marchán <kzm@sykosomatic.org> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Diffstat (limited to 'deps/npm/doc')
-rw-r--r--deps/npm/doc/cli/npm-adduser.md2
-rw-r--r--deps/npm/doc/cli/npm-dedupe.md4
-rw-r--r--deps/npm/doc/cli/npm-dist-tag.md26
-rw-r--r--deps/npm/doc/cli/npm-install-test.md25
-rw-r--r--deps/npm/doc/cli/npm-install.md23
-rw-r--r--deps/npm/doc/cli/npm-logout.md2
-rw-r--r--deps/npm/doc/cli/npm-outdated.md60
-rw-r--r--deps/npm/doc/cli/npm-prune.md2
-rw-r--r--deps/npm/doc/cli/npm-publish.md12
-rw-r--r--deps/npm/doc/cli/npm-run-script.md3
-rw-r--r--deps/npm/doc/cli/npm-start.md8
-rw-r--r--deps/npm/doc/cli/npm-team.md2
-rw-r--r--deps/npm/doc/cli/npm-uninstall.md2
-rw-r--r--deps/npm/doc/cli/npm-update.md2
-rw-r--r--deps/npm/doc/cli/npm-version.md9
-rw-r--r--deps/npm/doc/cli/npm.md5
-rw-r--r--deps/npm/doc/files/npm-folders.md12
-rw-r--r--deps/npm/doc/files/package.json.md10
-rw-r--r--deps/npm/doc/misc/npm-config.md26
-rw-r--r--deps/npm/doc/misc/npm-developers.md4
-rw-r--r--deps/npm/doc/misc/npm-faq.md393
-rw-r--r--deps/npm/doc/misc/npm-index.md8
-rw-r--r--deps/npm/doc/misc/npm-registry.md6
-rw-r--r--deps/npm/doc/misc/npm-scripts.md10
-rw-r--r--deps/npm/doc/misc/removing-npm.md2
-rw-r--r--deps/npm/doc/misc/semver.md26
26 files changed, 226 insertions, 458 deletions
diff --git a/deps/npm/doc/cli/npm-adduser.md b/deps/npm/doc/cli/npm-adduser.md
index 80d0f9855b..24d3611e61 100644
--- a/deps/npm/doc/cli/npm-adduser.md
+++ b/deps/npm/doc/cli/npm-adduser.md
@@ -28,7 +28,7 @@ your existing record.
### registry
-Default: http://registry.npmjs.org/
+Default: https://registry.npmjs.org/
The base URL of the npm package registry. If `scope` is also specified,
this registry will only be used for packages with that scope. See `npm-scope(7)`.
diff --git a/deps/npm/doc/cli/npm-dedupe.md b/deps/npm/doc/cli/npm-dedupe.md
index c963dfa8e9..ed8dca81f5 100644
--- a/deps/npm/doc/cli/npm-dedupe.md
+++ b/deps/npm/doc/cli/npm-dedupe.md
@@ -3,8 +3,8 @@ npm-dedupe(1) -- Reduce duplication
## SYNOPSIS
- npm dedupe [package names...]
- npm ddp [package names...]
+ npm dedupe
+ npm ddp
## DESCRIPTION
diff --git a/deps/npm/doc/cli/npm-dist-tag.md b/deps/npm/doc/cli/npm-dist-tag.md
index ce4f7ed4d5..06721bbae6 100644
--- a/deps/npm/doc/cli/npm-dist-tag.md
+++ b/deps/npm/doc/cli/npm-dist-tag.md
@@ -33,17 +33,30 @@ When installing dependencies, a preferred tagged version may be specified:
This also applies to `npm dedupe`.
-Publishing a package sets the "latest" tag to the published version unless the
+Publishing a package sets the `latest` tag to the published version unless the
`--tag` option is used. For example, `npm publish --tag=beta`.
+By default, `npm install <pkg>` (without any `@<version>` or `@<tag>`
+specifier) installs the `latest` tag.
+
## PURPOSE
-Tags can be used to provide an alias instead of version numbers. For
-example, `npm` currently uses the tag "next" to identify the upcoming
-version, and the tag "latest" to identify the current version.
+Tags can be used to provide an alias instead of version numbers.
+
+For example, a project might choose to have multiple streams of development
+and use a different tag for each stream,
+e.g., `stable`, `beta`, `dev`, `canary`.
+
+By default, the `latest` tag is used by npm to identify the current version of
+a package, and `npm install <pkg>` (without any `@<version>` or `@<tag>`
+specifier) installs the `latest` tag. Typically, projects only use the `latest`
+tag for stable release versions, and use other tags for unstable versions such
+as prereleases.
+
+The `next` tag is used by some projects to identify the upcoming version.
-A project might choose to have multiple streams of development, e.g.,
-"stable", "canary".
+By default, other than `latest`, no tag has any special significance to npm
+itself.
## CAVEATS
@@ -69,5 +82,4 @@ begin with a number or the letter `v`.
* npm-registry(7)
* npm-config(1)
* npm-config(7)
-* npm-tag(3)
* npmrc(5)
diff --git a/deps/npm/doc/cli/npm-install-test.md b/deps/npm/doc/cli/npm-install-test.md
new file mode 100644
index 0000000000..471b36f16b
--- /dev/null
+++ b/deps/npm/doc/cli/npm-install-test.md
@@ -0,0 +1,25 @@
+# npm install-test(1) -- Install package(s) and run tests
+
+## SYNOPSIS
+
+ npm install-test (with no args, in package dir)
+ npm install-test [<@scope>/]<name>
+ npm install-test [<@scope>/]<name>@<tag>
+ npm install-test [<@scope>/]<name>@<version>
+ npm install-test [<@scope>/]<name>@<version range>
+ npm install-test <tarball file>
+ npm install-test <tarball url>
+ npm install-test <folder>
+
+ alias: npm it
+ common options: [--save|--save-dev|--save-optional] [--save-exact] [--dry-run]
+
+## DESCRIPTION
+
+This command runs an `npm install` followed immediately by an `npm test`. It
+takes exactly the same arguments as `npm install`.
+
+## SEE ALSO
+
+- npm-install(1)
+- npm-test(1)
diff --git a/deps/npm/doc/cli/npm-install.md b/deps/npm/doc/cli/npm-install.md
index 75e9e13fd9..36566af0df 100644
--- a/deps/npm/doc/cli/npm-install.md
+++ b/deps/npm/doc/cli/npm-install.md
@@ -23,11 +23,11 @@ by that. See npm-shrinkwrap(1).
A `package` is:
-* a) a folder containing a program described by a package.json file
+* a) a folder containing a program described by a `package.json(5)` file
* b) a gzipped tarball containing (a)
* c) a url that resolves to (b)
* d) a `<name>@<version>` that is published on the registry (see `npm-registry(7)`) with (c)
-* e) a `<name>@<tag>` that points to (d)
+* e) a `<name>@<tag>` (see `npm-dist-tag(1)`) that points to (d)
* f) a `<name>` that has a "latest" tag satisfying (e)
* g) a `<git remote url>` that resolves to (a)
@@ -45,7 +45,9 @@ after packing it up into a tarball (b).
it installs the current package context (ie, the current working
directory) as a global package.
- By default, `npm install` will install all modules listed as dependencies.
+ By default, `npm install` will install all modules listed as dependencies
+ in `package.json(5)`.
+
With the `--production` flag (or when the `NODE_ENV` environment variable
is set to `production`), npm will not install modules listed in
`devDependencies`.
@@ -76,7 +78,7 @@ after packing it up into a tarball (b).
* `npm install [<@scope>/]<name> [-S|--save|-D|--save-dev|-O|--save-optional]`:
Do a `<name>@<tag>` install, where `<tag>` is the "tag" config. (See
- `npm-config(7)`.)
+ `npm-config(7)`. The config's default value is `latest`.)
In most cases, this will install the latest version
of the module published on npm.
@@ -257,6 +259,16 @@ local copy exists on disk.
The `-g` or `--global` argument will cause npm to install the package globally
rather than locally. See `npm-folders(5)`.
+The `--global-style` argument will cause npm to install the package into
+your local `node_modules` folder with the same layout it uses with the
+global `node_modules` folder. Only your direct dependencies will show in
+`node_modules` and everything they depend on will be flattened in their
+`node_modules` folders. This obviously will elminate some deduping.
+
+The `--legacy-bundling` argument will cause npm to install the package such
+that versions of npm prior to 1.4, such as the one included with node 0.8,
+can install the package. This eliminates all automatic deduping.
+
The `--link` argument will cause npm to link global installs into the
local space in some cases.
@@ -353,5 +365,6 @@ affects a real use-case, it will be investigated.
* npmrc(5)
* npm-registry(7)
* npm-tag(1)
-* npm-rm(1)
+* npm-uninstall(1)
* npm-shrinkwrap(1)
+* package.json(5)
diff --git a/deps/npm/doc/cli/npm-logout.md b/deps/npm/doc/cli/npm-logout.md
index 411ea67e6c..59f49cc25a 100644
--- a/deps/npm/doc/cli/npm-logout.md
+++ b/deps/npm/doc/cli/npm-logout.md
@@ -22,7 +22,7 @@ connected to that scope, if set.
### registry
-Default: http://registry.npmjs.org/
+Default: https://registry.npmjs.org/
The base URL of the npm package registry. If `scope` is also specified,
it takes precedence.
diff --git a/deps/npm/doc/cli/npm-outdated.md b/deps/npm/doc/cli/npm-outdated.md
index bdc9b9b8ed..0792be24a7 100644
--- a/deps/npm/doc/cli/npm-outdated.md
+++ b/deps/npm/doc/cli/npm-outdated.md
@@ -10,9 +10,61 @@ npm-outdated(1) -- Check for outdated packages
This command will check the registry to see if any (or, specific) installed
packages are currently outdated.
-The resulting field 'wanted' shows the latest version according to the
-version specified in the package.json, the field 'latest' the very latest
-version of the package.
+In the output:
+
+* `wanted` is the maximum version of the package that satisfies the semver
+ range specified in `package.json`. If there's no available semver range (i.e.
+ you're running `npm outdated --global`, or the package isn't included in
+ `package.json`), then `wanted` shows the currently-installed version.
+* `latest` is the version of the package tagged as latest in the registry.
+ Running `npm publish` with no special configuration will publish the package
+ with a dist-tag of `latest`. This may or may not be the maximum version of
+ the package, or the most-recently published version of the package, depending
+ on how the package's developer manages the latest dist-tag(1).
+* `location` is where in the dependency tree the package is located. Note that
+ `npm outdated` defaults to a depth of 0, so unless you override that, you'll
+ always be seeing only top-level dependencies that are outdated.
+* `package type` (when using `--long` / `-l`) tells you whether this package is
+ a `dependency` or a `devDependency`. Packages not included in `package.json`
+ are always marked `dependencies`.
+
+### An example
+
+```
+$ npm outdated
+Package Current Wanted Latest Location
+glob 5.0.15 5.0.15 6.0.1 test-outdated-output
+nothingness 0.0.3 git git test-outdated-output
+npm 3.5.1 3.5.2 3.5.1 test-outdated-output
+local-dev 0.0.3 linked linked test-outdated-output
+once 1.3.2 1.3.3 1.3.3 test-outdated-output
+```
+
+With these `dependencies`:
+```json
+{
+ "glob": "^5.0.15",
+ "nothingness": "github:othiym23/nothingness#master",
+ "npm": "^3.5.1",
+ "once": "^1.3.1"
+}
+```
+
+A few things to note:
+
+* `glob` requires `^5`, which prevents npm from installing `glob@6`, which is
+ outside the semver range.
+* Git dependencies will always be reinstalled, because of how they're specified.
+ The installed committish might satisfy the dependency specifier (if it's
+ something immutable, like a commit SHA), or it might not, so `npm outdated` and
+ `npm update` have to fetch Git repos to check. This is why currently doing a
+ reinstall of a Git dependency always forces a new clone and install.
+* `npm@3.5.2` is marked as "wanted", but "latest" is `npm@3.5.1` because npm
+ uses dist-tags to manage its `latest` and `next` release channels. `npm update`
+ will install the _newest_ version, but `npm install npm` (with no semver range)
+ will install whatever's tagged as `latest`.
+* `once` is just plain out of date. Reinstalling `node_modules` from scratch or
+ running `npm update` will bring it up to spec.
## CONFIGURATION
@@ -47,6 +99,7 @@ project.
### depth
+* Default: 0
* Type: Int
Max depth for checking dependency tree.
@@ -54,5 +107,6 @@ Max depth for checking dependency tree.
## SEE ALSO
* npm-update(1)
+* npm-dist-tag(1)
* npm-registry(7)
* npm-folders(5)
diff --git a/deps/npm/doc/cli/npm-prune.md b/deps/npm/doc/cli/npm-prune.md
index 9089122117..c7f340ca7b 100644
--- a/deps/npm/doc/cli/npm-prune.md
+++ b/deps/npm/doc/cli/npm-prune.md
@@ -21,6 +21,6 @@ negate `NODE_ENV` being set to `production`.
## SEE ALSO
-* npm-rm(1)
+* npm-uninstall(1)
* npm-folders(5)
* npm-ls(1)
diff --git a/deps/npm/doc/cli/npm-publish.md b/deps/npm/doc/cli/npm-publish.md
index 8e4da32cd5..4ffefb8823 100644
--- a/deps/npm/doc/cli/npm-publish.md
+++ b/deps/npm/doc/cli/npm-publish.md
@@ -11,9 +11,12 @@ npm-publish(1) -- Publish a package
## DESCRIPTION
-Publishes a package to the registry so that it can be installed by name. See
-`npm-developers(7)` for details on what's included in the published package, as
-well as details on how the package is built.
+Publishes a package to the registry so that it can be installed by name. All
+files in the package directory are included if no local `.gitignore` or
+`.npmignore` file exists. If both files exist and a file is ignored by
+`.gitignore` but not by `.npmignore` then it will be included. See
+`npm-developers(7)` for full details on what's included in the published
+package, as well as details on how the package is built.
By default npm will publish to the public registry. This can be overridden by
specifying a different default registry or using a `npm-scope(7)` in the name
@@ -29,7 +32,8 @@ specifying a different default registry or using a `npm-scope(7)` in the name
* `[--tag <tag>]`
Registers the published package with the given tag, such that `npm install
<name>@<tag>` will install this version. By default, `npm publish` updates
- and `npm install` installs the `latest` tag.
+ and `npm install` installs the `latest` tag. See `npm-dist-tag(1)` for
+ details about tags.
* `[--access <public|restricted>]`
Tells the registry whether this package should be published as public or
diff --git a/deps/npm/doc/cli/npm-run-script.md b/deps/npm/doc/cli/npm-run-script.md
index 1e956adcc0..b8da1f09f3 100644
--- a/deps/npm/doc/cli/npm-run-script.md
+++ b/deps/npm/doc/cli/npm-run-script.md
@@ -40,6 +40,9 @@ you should write:
instead of `"scripts": {"test": "node_modules/.bin/tap test/\*.js"}` to run your tests.
+If you try to run a script without having a `node_modules` directory and it fails,
+you will be given a warning to run `npm install`, just in case you've forgotten.
+
## SEE ALSO
* npm-scripts(7)
diff --git a/deps/npm/doc/cli/npm-start.md b/deps/npm/doc/cli/npm-start.md
index 759de221f3..94c468c296 100644
--- a/deps/npm/doc/cli/npm-start.md
+++ b/deps/npm/doc/cli/npm-start.md
@@ -7,7 +7,13 @@ npm-start(1) -- Start a package
## DESCRIPTION
-This runs a package's "start" script, if one was provided.
+This runs an arbitrary command specified in the package's `"start"` property of
+its `"scripts"` object. If no `"start"` property is specified on the
+`"scripts"` object, it will run `node server.js`.
+
+As of [`npm@2.0.0`](http://blog.npmjs.org/post/98131109725/npm-2-0-0), you can
+use custom arguments when executing scripts. Refer to npm-run-script(1) for
+more details.
## SEE ALSO
diff --git a/deps/npm/doc/cli/npm-team.md b/deps/npm/doc/cli/npm-team.md
index 08856ed3ec..5a8b4b63e3 100644
--- a/deps/npm/doc/cli/npm-team.md
+++ b/deps/npm/doc/cli/npm-team.md
@@ -21,7 +21,7 @@ handle permissions for packages.
Teams must always be fully qualified with the organization/scope they belong to
when operating on them, separated by a colon (`:`). That is, if you have a
`developers` team on a `foo` organization, you must always refer to that team as
-`developers:foo` in these commands.
+`foo:developers` in these commands.
* create / destroy:
Create a new team, or destroy an existing one.
diff --git a/deps/npm/doc/cli/npm-uninstall.md b/deps/npm/doc/cli/npm-uninstall.md
index 97d72d2c5c..e870b23d5c 100644
--- a/deps/npm/doc/cli/npm-uninstall.md
+++ b/deps/npm/doc/cli/npm-uninstall.md
@@ -1,4 +1,4 @@
-npm-rm(1) -- Remove a package
+npm-uninstall(1) -- Remove a package
=============================
## SYNOPSIS
diff --git a/deps/npm/doc/cli/npm-update.md b/deps/npm/doc/cli/npm-update.md
index 72719670dd..f79752fae9 100644
--- a/deps/npm/doc/cli/npm-update.md
+++ b/deps/npm/doc/cli/npm-update.md
@@ -22,7 +22,7 @@ or local) will be updated.
As of `npm@2.6.1`, the `npm update` will only inspect top-level packages.
Prior versions of `npm` would also recursively inspect all dependencies.
-To get the old behavior, use `npm --depth 9999 update`, but be warned that
+To get the old behavior, use `npm --depth Infinity update`, but be warned that
simultaneous asynchronous update of all packages, including `npm` itself
and packages that `npm` depends on, often causes problems up to and including
the uninstallation of `npm` itself.
diff --git a/deps/npm/doc/cli/npm-version.md b/deps/npm/doc/cli/npm-version.md
index 6bd550659d..2932516bb6 100644
--- a/deps/npm/doc/cli/npm-version.md
+++ b/deps/npm/doc/cli/npm-version.md
@@ -3,7 +3,7 @@ npm-version(1) -- Bump a package version
## SYNOPSIS
- npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease]
+ npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease | from-git]
'npm [-v | --version]' to print npm version
'npm view <pkg> version' to view a package's published version
@@ -14,10 +14,11 @@ npm-version(1) -- Bump a package version
Run this in a package directory to bump the version and write the new
data back to `package.json` and, if present, `npm-shrinkwrap.json`.
-The `newversion` argument should be a valid semver string, *or* a
-valid second argument to semver.inc (one of `patch`, `minor`, `major`,
-`prepatch`, `preminor`, `premajor`, `prerelease`). In the second case,
+The `newversion` argument should be a valid semver string, a
+valid second argument to [semver.inc](https://github.com/npm/node-semver#functions) (one of `patch`, `minor`, `major`,
+`prepatch`, `preminor`, `premajor`, `prerelease`), or `from-git`. In the second case,
the existing version will be incremented by 1 in the specified field.
+`from-git` will try to read the latest git tag, and use that as the new npm version.
If run in a git repo, it will also create a version commit and tag.
This behavior is controlled by `git-tag-version` (see below), and can
diff --git a/deps/npm/doc/cli/npm.md b/deps/npm/doc/cli/npm.md
index 8a05d0605a..9746a15fc0 100644
--- a/deps/npm/doc/cli/npm.md
+++ b/deps/npm/doc/cli/npm.md
@@ -130,7 +130,7 @@ easily by doing `npm view npm contributors`.
If you would like to contribute, but don't know what to work on, check
the issues list or ask on the mailing list.
-* <http://github.com/npm/npm/issues>
+* <https://github.com/npm/npm/issues>
* <npm-@googlegroups.com>
## BUGS
@@ -138,7 +138,7 @@ the issues list or ask on the mailing list.
When you find issues, please report them:
* web:
- <http://github.com/npm/npm/issues>
+ <https://github.com/npm/npm/issues>
* email:
<npm-@googlegroups.com>
@@ -166,4 +166,3 @@ will no doubt tell you to put the output in a gist or email.
* npm-config(7)
* npmrc(5)
* npm-index(7)
-* npm(3)
diff --git a/deps/npm/doc/files/npm-folders.md b/deps/npm/doc/files/npm-folders.md
index 1fb21b1a31..6846b1fce8 100644
--- a/deps/npm/doc/files/npm-folders.md
+++ b/deps/npm/doc/files/npm-folders.md
@@ -20,12 +20,10 @@ This document will tell you what it puts where.
### prefix Configuration
The `prefix` config defaults to the location where node is installed.
-On most systems, this is `/usr/local`, and most of the time is the same
-as node's `process.installPrefix`.
-
-On windows, this is the exact location of the node.exe binary. On Unix
-systems, it's one level up, since node is typically installed at
-`{prefix}/bin/node` rather than `{prefix}/node.exe`.
+On most systems, this is `/usr/local`. On windows, this is the exact
+location of the node.exe binary. On Unix systems, it's one level up,
+since node is typically installed at `{prefix}/bin/node` rather than
+`{prefix}/node.exe`.
When the `global` flag is set, npm installs things into this prefix.
When it is not set, it uses the root of the current package, or the
@@ -45,7 +43,7 @@ Global installs on Windows go to `{prefix}/node_modules` (that is, no
Scoped packages are installed the same way, except they are grouped together
in a sub-folder of the relevant `node_modules` folder with the name of that
scope prefix by the @ symbol, e.g. `npm install @myorg/package` would place
-the package in `{prefix}/node_modules/@myorg/package`. See `scopes(7)` for
+the package in `{prefix}/node_modules/@myorg/package`. See `scope(7)` for
more details.
If you wish to `require()` a package, then install it locally.
diff --git a/deps/npm/doc/files/package.json.md b/deps/npm/doc/files/package.json.md
index d907945194..4b278e1324 100644
--- a/deps/npm/doc/files/package.json.md
+++ b/deps/npm/doc/files/package.json.md
@@ -21,7 +21,7 @@ The name is what your thing is called.
Some rules:
-* The name must be shorter than 214 characters. This includes the scope for
+* The name must be less than or equal to 214 characters. This includes the scope for
scoped packages.
* The name can't start with a dot or an underscore.
* New packages must not have uppercase letters in the name.
@@ -105,10 +105,10 @@ current SPDX license identifier for the license you're using, like this:
You can check [the full list of SPDX license IDs](https://spdx.org/licenses/).
Ideally you should pick one that is
-[OSI](http://opensource.org/licenses/alphabetical) approved.
+[OSI](https://opensource.org/licenses/alphabetical) approved.
If your package is licensed under multiple common licenses, use an [SPDX license
-expression syntax version 2.0 string](http://npmjs.com/package/spdx), like this:
+expression syntax version 2.0 string](https://npmjs.com/package/spdx), like this:
{ "license" : "(ISC OR GPL-3.0)" }
@@ -410,7 +410,7 @@ See semver(7) for more details about specifying version ranges.
* `git...` See 'Git URLs as Dependencies' below
* `user/repo` See 'GitHub URLs' below
* `tag` A specific version tagged and published as `tag` See `npm-tag(1)`
-* `path/path/path` See Local Paths below
+* `path/path/path` See [Local Paths](#local-paths) below
For example, these are all valid:
@@ -726,4 +726,4 @@ npm will default some values based on package contents.
* npm-faq(7)
* npm-install(1)
* npm-publish(1)
-* npm-rm(1)
+* npm-uninstall(1)
diff --git a/deps/npm/doc/misc/npm-config.md b/deps/npm/doc/misc/npm-config.md
index f88bf9f8a0..a3c7b5a506 100644
--- a/deps/npm/doc/misc/npm-config.md
+++ b/deps/npm/doc/misc/npm-config.md
@@ -240,7 +240,7 @@ A client certificate to pass when accessing the registry.
### color
-* Default: true on Posix, false on Windows
+* Default: true
* Type: Boolean or `"always"`
If false, never shows colors. If `"always"` then always shows colors.
@@ -385,6 +385,18 @@ Operates in "global" mode, so that packages are installed into the
The config file to read for global config options.
+### global-style
+
+* Default: false
+* Type: Boolean
+
+Causes npm to install the package into your local `node_modules` folder with
+the same layout it uses with the global `node_modules` folder. Only your
+direct dependencies will show in `node_modules` and everything they depend
+on will be flattened in their `node_modules` folders. This obviously will
+elminate some deduping. If used with `legacy-bundling`, `legacy-bundling` will be
+preferred.
+
### group
* Default: GID of the current process
@@ -491,6 +503,16 @@ change. Only the output from `npm ls --json` is currently valid.
A client key to pass when accessing the registry.
+### legacy-bundling
+
+* Default: false
+* Type: Boolean
+
+Causes npm to install the package such that versions of npm prior to 1.4,
+such as the one included with node 0.8, can install the package. This
+eliminates all automatic deduping. If used with `global-style` this option
+will be preferred.
+
### link
* Default: false
@@ -863,7 +885,7 @@ on success, but left behind on failure for forensic purposes.
### unicode
-* Default: true on windows and mac/unix systems with a unicode locale
+* Default: false on windows, true on mac/unix systems with a unicode locale
* Type: Boolean
When set to true, npm uses unicode characters in the tree output. When
diff --git a/deps/npm/doc/misc/npm-developers.md b/deps/npm/doc/misc/npm-developers.md
index 2ef900b349..25957f11ec 100644
--- a/deps/npm/doc/misc/npm-developers.md
+++ b/deps/npm/doc/misc/npm-developers.md
@@ -104,7 +104,7 @@ create an empty `.npmignore` file to override it. Like `git`, `npm` looks
for `.npmignore` and `.gitignore` files in all subdirectories of your
package, not only the root directory.
-`.npmignore` files follow the [same pattern rules](http://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository#Ignoring-Files)
+`.npmignore` files follow the [same pattern rules](https://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository#Ignoring-Files)
as `.gitignore` files:
* Blank lines or lines starting with `#` are ignored.
@@ -191,7 +191,7 @@ This is documented better in npm-adduser(1).
## Publish your package
-This part's easy. IN the root of your folder, do this:
+This part's easy. In the root of your folder, do this:
npm publish
diff --git a/deps/npm/doc/misc/npm-faq.md b/deps/npm/doc/misc/npm-faq.md
deleted file mode 100644
index cc1c19e61a..0000000000
--- a/deps/npm/doc/misc/npm-faq.md
+++ /dev/null
@@ -1,393 +0,0 @@
-npm-faq(7) -- Frequently Asked Questions
-========================================
-
-## Where can I find these docs in HTML?
-
-<https://docs.npmjs.com/>, or run:
-
- npm config set viewer browser
-
-This command will set the npm docs to open in your default web browser rather than `man`.
-
-## It didn't work.
-
-Please provide a little more detail, search for the error via [Google](https://google.com) or [StackOverflow npm](http://stackoverflow.com/search?q=npm) to see if another developer has encountered a similar problem.
-
-## Why didn't it work?
-
-I don't know yet.
-
-Try reading the error output first, ensure this is a true npm issue and not a package issue. If you are having an issue with a package dependency, please submit your error to that particular package maintainer.
-
-For any npm issues, try following the instructions, or even retracing your steps. If the issue continues to persist, submit a bug with the steps to reproduce, please include the operating system you are working on, along with the error you recieve.
-
-## Where does npm put stuff?
-
-See `npm-folders(5)`
-
-tl;dr:
-
-* Use the `npm root` command to see where modules go, and the `npm bin`
- command to see where executables go
-* Global installs are different from local installs. If you install
- something with the `-g` flag, then its executables go in `npm bin -g`
- and its modules go in `npm root -g`.
-
-## How do I install something on my computer in a central location?
-
-Install it globally by tacking `-g` or `--global` to the command. (This
-is especially important for command line utilities that need to add
-their bins to the global system `PATH`.)
-
-## I installed something globally, but I can't `require()` it
-
-Install it locally.
-
-The global install location is a place for command-line utilities
-to put their bins in the system `PATH`. It's not for use with `require()`.
-
-If you `require()` a module in your code, then that means it's a
-dependency, and a part of your program. You need to install it locally
-in your program.
-
-## Why can't npm just put everything in one place, like other package managers?
-
-Not every change is an improvement, but every improvement is a change.
-This would be like asking git to do network IO for every commit. It's
-not going to happen, because it's a terrible idea that causes more
-problems than it solves.
-
-It is much harder to avoid dependency conflicts without nesting
-dependencies. This is fundamental to the way that npm works, and has
-proven to be an extremely successful approach. See `npm-folders(5)` for
-more details.
-
-If you want a package to be installed in one place, and have all your
-programs reference the same copy of it, then use the `npm link` command.
-That's what it's for. Install it globally, then link it into each
-program that uses it.
-
-## Whatever, I really want the old style 'everything global' style.
-
-Write your own package manager. You could probably even wrap up `npm`
-in a shell script if you really wanted to.
-
-npm will not help you do something that is known to be a bad idea.
-
-## Should I check my `node_modules` folder into git?
-
-Usually, no. Allow npm to resolve dependencies for your packages.
-
-For packages you **deploy**, such as websites and apps,
-you should use npm shrinkwrap to lock down your full dependency tree:
-
-<https://docs.npmjs.com/cli/shrinkwrap>
-
-If you are paranoid about depending on the npm ecosystem,
-you should run a private npm mirror or a private cache.
-
-If you want 100% confidence in being able to reproduce the specific bytes
-included in a deployment, you should use an additional mechanism that can
-verify contents rather than versions. For example,
-Amazon machine images, DigitalOcean snapshots, Heroku slugs, or simple tarballs.
-
-## Is it 'npm' or 'NPM' or 'Npm'?
-
-npm should never be capitalized unless it is being displayed in a
-location that is customarily all-caps (such as the title of man pages.)
-
-## If 'npm' is an acronym, why is it never capitalized?
-
-Contrary to the belief of many, "npm" is not in fact an abbreviation for
-"Node Package Manager". It is a recursive bacronymic abbreviation for
-"npm is not an acronym". (If it was "ninaa", then it would be an
-acronym, and thus incorrectly named.)
-
-"NPM", however, *is* an acronym (more precisely, a capitonym) for the
-National Association of Pastoral Musicians. You can learn more
-about them at <http://npm.org/>.
-
-In software, "NPM" is a Non-Parametric Mapping utility written by
-Chris Rorden. You can analyze pictures of brains with it. Learn more
-about the (capitalized) NPM program at <http://www.cabiatl.com/mricro/npm/>.
-
-The first seed that eventually grew into this flower was a bash utility
-named "pm", which was a shortened descendent of "pkgmakeinst", a
-bash function that was used to install various different things on different
-platforms, most often using Yahoo's `yinst`. If `npm` was ever an
-acronym for anything, it was `node pm` or maybe `new pm`.
-
-So, in all seriousness, the "npm" project is named after its command-line
-utility, which was organically selected to be easily typed by a right-handed
-programmer using a US QWERTY keyboard layout, ending with the
-right-ring-finger in a postition to type the `-` key for flags and
-other command-line arguments. That command-line utility is always
-lower-case, though it starts most sentences it is a part of.
-
-## How do I list installed packages?
-
-`npm ls`
-
-## How do I search for packages?
-
-`npm search`
-
-Arguments are greps. `npm search jsdom` shows jsdom packages.
-
-## How do I update npm?
-
- npm install npm -g
-
-You can also update all outdated local packages by doing `npm update` without
-any arguments, or global packages by doing `npm update -g`.
-
-Occasionally, the version of npm will progress such that the current
-version cannot be properly installed with the version that you have
-installed already. (Consider, if there is ever a bug in the `update`
-command.)
-
-In those cases, you can do this:
-
- curl https://www.npmjs.com/install.sh | sh
-
-## What is a `package`?
-
-A package is:
-
-* a) a folder containing a program described by a package.json file
-* b) a gzipped tarball containing (a)
-* c) a url that resolves to (b)
-* d) a `<name>@<version>` that is published on the registry with (c)
-* e) a `<name>@<tag>` that points to (d)
-* f) a `<name>` that has a "latest" tag satisfying (e)
-* g) a `git` url that, when cloned, results in (a).
-
-Even if you never publish your package, you can still get a lot of
-benefits of using npm if you just want to write a node program (a), and
-perhaps if you also want to be able to easily install it elsewhere
-after packing it up into a tarball (b).
-
-Git urls can be of the form:
-
- git://github.com/user/project.git#commit-ish
- git+ssh://user@hostname:project.git#commit-ish
- git+http://user@hostname/project/blah.git#commit-ish
- git+https://user@hostname/project/blah.git#commit-ish
-
-The `commit-ish` can be any tag, sha, or branch which can be supplied as
-an argument to `git checkout`. The default is `master`.
-
-## What is a `module`?
-
-A module is anything that can be loaded with `require()` in a Node.js
-program. The following things are all examples of things that can be
-loaded as modules:
-
-* A folder with a `package.json` file containing a `main` field.
-* A folder with an `index.js` file in it.
-* A JavaScript file.
-
-Most npm packages are modules, because they are libraries that you
-load with `require`. However, there's no requirement that an npm
-package be a module! Some only contain an executable command-line
-interface, and don't provide a `main` field for use in Node programs.
-
-Almost all npm packages (at least, those that are Node programs)
-*contain* many modules within them (because every file they load with
-`require()` is a module).
-
-In the context of a Node program, the `module` is also the thing that
-was loaded *from* a file. For example, in the following program:
-
- var req = require('request')
-
-we might say that "The variable `req` refers to the `request` module".
-
-## So, why is it the "`node_modules`" folder, but "`package.json`" file? Why not `node_packages` or `module.json`?
-
-The `package.json` file defines the package. (See "What is a
-package?" above.)
-
-The `node_modules` folder is the place Node.js looks for modules.
-(See "What is a module?" above.)
-
-For example, if you create a file at `node_modules/foo.js` and then
-had a program that did `var f = require('foo.js')` then it would load
-the module. However, `foo.js` is not a "package" in this case,
-because it does not have a package.json.
-
-Alternatively, if you create a package which does not have an
-`index.js` or a `"main"` field in the `package.json` file, then it is
-not a module. Even if it's installed in `node_modules`, it can't be
-an argument to `require()`.
-
-## `"node_modules"` is the name of my deity's arch-rival, and a Forbidden Word in my religion. Can I configure npm to use a different folder?
-
-No. This will never happen. This question comes up sometimes,
-because it seems silly from the outside that npm couldn't just be
-configured to put stuff somewhere else, and then npm could load them
-from there. It's an arbitrary spelling choice, right? What's the big
-deal?
-
-At the time of this writing, the string `'node_modules'` appears 151
-times in 53 separate files in npm and node core (excluding tests and
-documentation).
-
-Some of these references are in node's built-in module loader. Since
-npm is not involved **at all** at run-time, node itself would have to
-be configured to know where you've decided to stick stuff. Complexity
-hurdle #1. Since the Node module system is locked, this cannot be
-changed, and is enough to kill this request. But I'll continue, in
-deference to your deity's delicate feelings regarding spelling.
-
-Many of the others are in dependencies that npm uses, which are not
-necessarily tightly coupled to npm (in the sense that they do not read
-npm's configuration files, etc.) Each of these would have to be
-configured to take the name of the `node_modules` folder as a
-parameter. Complexity hurdle #2.
-
-Furthermore, npm has the ability to "bundle" dependencies by adding
-the dep names to the `"bundledDependencies"` list in package.json,
-which causes the folder to be included in the package tarball. What
-if the author of a module bundles its dependencies, and they use a
-different spelling for `node_modules`? npm would have to rename the
-folder at publish time, and then be smart enough to unpack it using
-your locally configured name. Complexity hurdle #3.
-
-Furthermore, what happens when you *change* this name? Fine, it's
-easy enough the first time, just rename the `node_modules` folders to
-`./blergyblerp/` or whatever name you choose. But what about when you
-change it again? npm doesn't currently track any state about past
-configuration settings, so this would be rather difficult to do
-properly. It would have to track every previous value for this
-config, and always accept any of them, or else yesterday's install may
-be broken tomorrow. Complexity hurdle #4.
-
-Never going to happen. The folder is named `node_modules`. It is
-written indelibly in the Node Way, handed down from the ancient times
-of Node 0.3.
-
-## How do I install node with npm?
-
-You don't. Try one of these node version managers:
-
-Unix:
-
-* <http://github.com/isaacs/nave>
-* <http://github.com/visionmedia/n>
-* <http://github.com/creationix/nvm>
-
-Windows:
-
-* <http://github.com/marcelklehr/nodist>
-* <https://github.com/coreybutler/nvm-windows>
-* <https://github.com/hakobera/nvmw>
-* <https://github.com/nanjingboy/nvmw>
-
-## How can I use npm for development?
-
-See `npm-developers(7)` and `package.json(5)`.
-
-You'll most likely want to `npm link` your development folder. That's
-awesomely handy.
-
-To set up your own private registry, check out `npm-registry(7)`.
-
-## Can I list a url as a dependency?
-
-Yes. It should be a url to a gzipped tarball containing a single folder
-that has a package.json in its root, or a git url.
-(See "what is a package?" above.)
-
-## How do I symlink to a dev folder so I don't have to keep re-installing?
-
-See `npm-link(1)`
-
-## The package registry website. What is that exactly?
-
-See `npm-registry(7)`.
-
-## I forgot my password, and can't publish. How do I reset it?
-
-Go to <https://npmjs.com/forgot>.
-
-## I get ECONNREFUSED a lot. What's up?
-
-Either the registry is down, or node's DNS isn't able to reach out.
-
-To check if the registry is down, open up
-<https://registry.npmjs.org/> in a web browser. This will also tell
-you if you are just unable to access the internet for some reason.
-
-If the registry IS down, let us know by emailing <support@npmjs.com>
-or posting an issue at <https://github.com/npm/npm/issues>. If it's
-down for the world (and not just on your local network) then we're
-probably already being pinged about it.
-
-You can also often get a faster response by visiting the #npm channel
-on Freenode IRC.
-
-## Why no namespaces?
-
-npm has only one global namespace. If you want to namespace your own packages,
-you may: simply use the `-` character to separate the names or use scoped
-packages. npm is a mostly anarchic system. There is not sufficient need to
-impose namespace rules on everyone.
-
-As of 2.0, npm supports scoped packages, which allow you to publish a group of
-related modules without worrying about name collisions.
-
-Every npm user owns the scope associated with their username. For example, the
-user named `npm` owns the scope `@npm`. Scoped packages are published inside a
-scope by naming them as if they were files under the scope directory, e.g., by
-setting `name` in `package.json` to `@npm/npm`.
-
-Scoped packages are supported by the public npm registry. The npm client is
-backwards-compatible with un-scoped registries, so it can be used to work with
-scoped and un-scoped registries at the same time.
-
-Unscoped packages can only depend on other unscoped packages. Scoped packages
-can depend on packages from their own scope, a different scope, or the public
-registry (unscoped).
-
-For the current documentation of scoped packages, see
-<https://docs.npmjs.com/misc/scope>
-
-References:
-
-1. For the reasoning behind the "one global namespace", please see this
- discussion: <https://github.com/npm/npm/issues/798> (TL;DR: It doesn't
- actually make things better, and can make them worse.)
-
-2. For the pre-implementation discussion of the scoped package feature, see
- this discussion: <https://github.com/npm/npm/issues/5239>
-
-## Who does npm?
-
-npm was originally written by Isaac Z. Schlueter, and many others have
-contributed to it, some of them quite substantially.
-
-The npm open source project, The npm Registry, and [the community
-website](https://www.npmjs.com) are maintained and operated by the
-good folks at [npm, Inc.](http://www.npmjs.com)
-
-## I have a question or request not addressed here. Where should I put it?
-
-Post an issue on the github project:
-
-* <https://github.com/npm/npm/issues>
-
-## Why does npm hate me?
-
-npm is not capable of hatred. It loves everyone, especially you.
-
-## SEE ALSO
-
-* npm(1)
-* npm-developers(7)
-* package.json(5)
-* npm-config(1)
-* npm-config(7)
-* npmrc(5)
-* npm-config(7)
-* npm-folders(5)
diff --git a/deps/npm/doc/misc/npm-index.md b/deps/npm/doc/misc/npm-index.md
index 1bf102f4e4..7df6cc2c36 100644
--- a/deps/npm/doc/misc/npm-index.md
+++ b/deps/npm/doc/misc/npm-index.md
@@ -85,6 +85,10 @@ Get help on npm
Interactively create a package.json file
+### npm-install-test(1)
+
+Install package(s) and run tests
+
### npm-install(1)
Install a package
@@ -249,10 +253,6 @@ Developer Guide
Handling Module Name Disputes
-### npm-faq(7)
-
-Frequently Asked Questions
-
### npm-index(7)
Index of all npm documentation
diff --git a/deps/npm/doc/misc/npm-registry.md b/deps/npm/doc/misc/npm-registry.md
index bfc978faab..cc1a1b299c 100644
--- a/deps/npm/doc/misc/npm-registry.md
+++ b/deps/npm/doc/misc/npm-registry.md
@@ -11,10 +11,10 @@ Additionally, npm's package registry implementation supports several
write APIs as well, to allow for publishing packages and managing user
account information.
-The official public npm registry is at <http://registry.npmjs.org/>. It
+The official public npm registry is at <https://registry.npmjs.org/>. It
is powered by a CouchDB database, of which there is a public mirror at
-<http://skimdb.npmjs.com/registry>. The code for the couchapp is
-available at <http://github.com/npm/npm-registry-couchapp>.
+<https://skimdb.npmjs.com/registry>. The code for the couchapp is
+available at <https://github.com/npm/npm-registry-couchapp>.
The registry URL used is determined by the scope of the package (see
`npm-scope(7)`). If no scope is specified, the default registry is used, which is
diff --git a/deps/npm/doc/misc/npm-scripts.md b/deps/npm/doc/misc/npm-scripts.md
index c7f8b20ce6..e7f0f0c4e3 100644
--- a/deps/npm/doc/misc/npm-scripts.md
+++ b/deps/npm/doc/misc/npm-scripts.md
@@ -157,10 +157,10 @@ For example, if your package.json contains this:
}
}
-then the `scripts/install.js` will be called for the install,
-post-install, stages of the lifecycle, and the `scripts/uninstall.js`
-would be called when the package is uninstalled. Since
-`scripts/install.js` is running for three different phases, it would
+then `scripts/install.js` will be called for the install
+and post-install stages of the lifecycle, and `scripts/uninstall.js`
+will be called when the package is uninstalled. Since
+`scripts/install.js` is running for two different phases, it would
be wise in this case to look at the `npm_lifecycle_event` environment
variable.
@@ -210,7 +210,7 @@ above.
by simply describing your package appropriately. In general, this
will lead to a more robust and consistent state.
* Inspect the env to determine where to put things. For instance, if
- the `npm_config_binroot` environ is set to `/home/user/bin`, then
+ the `npm_config_binroot` environment variable is set to `/home/user/bin`, then
don't try to install executables into `/usr/local/bin`. The user
probably set it up that way for a reason.
* Don't prefix your script commands with "sudo". If root permissions
diff --git a/deps/npm/doc/misc/removing-npm.md b/deps/npm/doc/misc/removing-npm.md
index bedd28a2fa..84274522c2 100644
--- a/deps/npm/doc/misc/removing-npm.md
+++ b/deps/npm/doc/misc/removing-npm.md
@@ -50,5 +50,5 @@ modules. To track those down, you can do the following:
## SEE ALSO
* README
-* npm-rm(1)
+* npm-uninstall(1)
* npm-prune(1)
diff --git a/deps/npm/doc/misc/semver.md b/deps/npm/doc/misc/semver.md
index 2bd5acc29b..97a50cdf0c 100644
--- a/deps/npm/doc/misc/semver.md
+++ b/deps/npm/doc/misc/semver.md
@@ -107,7 +107,7 @@ The method `.inc` takes an additional `identifier` string argument that
will append the value of the string as a prerelease identifier:
```javascript
-> semver.inc('1.2.3', 'pre', 'beta')
+> semver.inc('1.2.3', 'prerelease', 'beta')
'1.2.4-beta.0'
```
@@ -228,6 +228,30 @@ zero.
* `^1.x` := `>=1.0.0 <2.0.0`
* `^0.x` := `>=0.0.0 <1.0.0`
+### Range Grammar
+
+Putting all this together, here is a Backus-Naur grammar for ranges,
+for the benefit of parser authors:
+
+```bnf
+range-set ::= range ( logical-or range ) *
+logical-or ::= ( ' ' ) * '||' ( ' ' ) *
+range ::= hyphen | simple ( ' ' simple ) * | ''
+hyphen ::= partial ' - ' partial
+simple ::= primitive | partial | tilde | caret
+primitive ::= ( '<' | '>' | '>=' | '<=' | '=' | ) partial
+partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )?
+xr ::= 'x' | 'X' | '*' | nr
+nr ::= '0' | ['1'-'9']['0'-'9']+
+tilde ::= '~' partial
+caret ::= '^' partial
+qualifier ::= ( '-' pre )? ( '+' build )?
+pre ::= parts
+build ::= parts
+parts ::= part ( '.' part ) *
+part ::= nr | [-0-9A-Za-z]+
+```
+
## Functions
All methods and classes take a final `loose` boolean argument that, if