deps: upgrade npm to 3.10.2
Contains the following npm releases: - https://github.com/npm/npm/releases/tag/v3.9.6 - https://github.com/npm/npm/releases/tag/v3.10.0 - https://github.com/npm/npm/releases/tag/v3.10.1 - https://github.com/npm/npm/releases/tag/v3.10.2 PR-URL: https://github.com/nodejs/node/pull/7410 Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
This commit is contained in:
parent
1db31a3494
commit
d538811fc8
13
deps/npm/.travis.yml
vendored
13
deps/npm/.travis.yml
vendored
@ -1,11 +1,16 @@
|
||||
language: node_js
|
||||
node_js:
|
||||
- "6"
|
||||
# LTS is our most important target
|
||||
- "4"
|
||||
- "5"
|
||||
- "0.12"
|
||||
# next LTS and master is next most important
|
||||
- "6"
|
||||
# still in LTS maintenance until fall 2016
|
||||
# (also still in wide use)
|
||||
- "0.10"
|
||||
- "0.8"
|
||||
# will be unsupported as soon as 6 becomes LTS and 7 released
|
||||
- "5"
|
||||
# technically in LTS / distros, unbeloved
|
||||
- "0.12"
|
||||
env:
|
||||
- DEPLOY_VERSION=testing
|
||||
before_install:
|
||||
|
4
deps/npm/AUTHORS
vendored
4
deps/npm/AUTHORS
vendored
@ -402,3 +402,7 @@ Gianluca Casati <fibo@users.noreply.github.com>
|
||||
André Herculano <andresilveirah@gmail.com>
|
||||
Wyatt Preul <wpreul@gmail.com>
|
||||
Myles Borins <mborins@us.ibm.com>
|
||||
Elliot Lee <github.public@intelliot.com>
|
||||
Dmitry Kirilyuk <gk.joker@gmail.com>
|
||||
Aaron Tribou <aaron.tribou@gmail.com>
|
||||
Tapani Moilanen <moilanen.tapani@gmail.com>
|
||||
|
435
deps/npm/CHANGELOG.md
vendored
435
deps/npm/CHANGELOG.md
vendored
@ -1,3 +1,438 @@
|
||||
### v3.10.2 (2016-06-17):
|
||||
|
||||
This is a quick hotfix release with two small bug fixes. First, there was
|
||||
an issue where the new progress bar would overwrite interactive prompts,
|
||||
that is, those found in `npm login` and `npm init`. Second, if the
|
||||
directory you were running `npm outdated` on was a bad link or otherwise had
|
||||
unrecoverable errors then npm would crash instead of printing the error.
|
||||
|
||||
* [`fbefb86`](https://github.com/npm/npm/commit/fbefb8675b26320b295f481b4872ce99f0180807)
|
||||
[`7779e9f`](https://github.com/npm/npm/commit/7779e9fb9430f6547532c67f2471864d62bbd5bc)
|
||||
[#13105](https://github.com/npm/npm/issues/13105)
|
||||
Disable progress bar in `adduser` and `init`.
|
||||
* [`6a33b2c`](https://github.com/npm/npm/commit/6a33b2c13f637a41e25cd0339925bc430b50358a)
|
||||
[#13115](https://github.com/npm/npm/issues/13115)
|
||||
Ensure that errors reading the package tree for `outdated` does not result
|
||||
in crashs.
|
||||
([@iarna](https://github.com/iarna))
|
||||
|
||||
### v3.10.1 (2016-06-17):
|
||||
|
||||
There are two very important bug fixes and one long-awaited (and signifcant!)
|
||||
deprecation in this hotfix release. [Hold on.](http://butt.holdings/)
|
||||
|
||||
#### *WHOA*
|
||||
|
||||
When Node.js 6.0.0 was released, the CLI team noticed an alarming upsurge in
|
||||
bugs related to important files (like `README.md`) not being included in
|
||||
published packages. The new bugs looked much like
|
||||
[#5082](https://github.com/npm/npm/issues/5082), which had been around in one
|
||||
form or another since April, 2014. #5082 used to be a very rare (and obnoxious)
|
||||
bug that the CLI team hadn't had much luck reproducing, and we'd basically
|
||||
marked it down as a race condition that arose on machines using slow and / or
|
||||
rotating-media-based hard drives.
|
||||
|
||||
Under 6.0.0, the behavior was reliable enough to be nearly deterministic, and
|
||||
made it very difficult for publishers using `.npmignore` files in combination
|
||||
with `"files"` stanzas in `package.json` to get their packages onto the
|
||||
registry without one or more files missing from the packed tarball. The entire
|
||||
saga is contained within [the issue](https://github.com/npm/npm/issues/5082),
|
||||
but the summary is that an improvement to the performance of
|
||||
[`fs.realpath()`](https://nodejs.org/api/fs.html#fs_fs_realpath_path_options_callback)
|
||||
made it much more likely that the packing code would lose the race.
|
||||
|
||||
Fixing this has proven to be very difficult, in part because the code used by
|
||||
npm to produce package tarballs is more complicated than, strictly speaking, it
|
||||
needs to be. [**@evanlucas**](https://github.com/evanlucas) contributed [a
|
||||
patch](https://github.com/npm/fstream/pull/50) that passed the tests in a
|
||||
[special test suite](https://github.com/othiym23/eliminate-5082) that I
|
||||
([**@othiym23**](https://github.com/othiym23)) created (with help from
|
||||
[**@addaleax**](https://github.com/addaleax)), but only _after_ we'd released
|
||||
the fixed version of that package did we learn that it actually made the
|
||||
problem _worse_ in other situations in npm proper. Eventually,
|
||||
[**@rvagg**](https://github.com/rvagg) put together a more durable fix that
|
||||
appears to completely address the errant behavior under Node.js 6.0.0. That's
|
||||
the patch included in this release. Everybody should chip in for redback
|
||||
insurance for Rod and his family; he's done the community a huge favor.
|
||||
|
||||
Does this mean the long (2+ year) saga of #5082 is now over? At this point, I'm
|
||||
going to quote from my latest summary on the issue:
|
||||
|
||||
> The CLI team (mostly me, with input from the rest of the team) has decided that
|
||||
> the overall complexity of the interaction between `fstream`, `fstream-ignore`,
|
||||
> `fstream-npm`, and `node-tar` has grown more convoluted than the team is
|
||||
> comfortable (maybe even capable of) supporting.
|
||||
>
|
||||
> - While I believe that @rvagg's (very targeted) fix addresses _this_ issue, I
|
||||
> would be shocked if there aren't other race conditions in npm's packing
|
||||
> logic. I've already identified a couple other places in the code that are
|
||||
> most likely race conditions, even if they're harder to trigger than the
|
||||
> current one.
|
||||
> - The way that dependency bundling is integrated leads to a situation in
|
||||
> which a bunch of logic is duplicated between `fstream-npm` and
|
||||
> `lib/utils/tar.js` in npm itself, and the way `fstream`'s extension
|
||||
> mechanism works makes this difficult to clean up. This caused a nasty
|
||||
> regression ([#13088](https://github.com/npm/fstream/pull/50), see below) as
|
||||
> of ~`npm@3.8.7` where the dependencies of `bundledDependencies` were no
|
||||
> longer being included in the built package tarballs.
|
||||
> - The interaction between `.npmignore`, `.gitignore`, and `files` is hopelessly
|
||||
> complicated, scattered in many places throughout the code. We've been
|
||||
> discussing [making the ignores and includes logic clearer and more
|
||||
> predictable](https://github.com/npm/npm/wiki/Files-and-Ignores), and the
|
||||
> current code fights our efforts to clean that up.
|
||||
>
|
||||
> So, our intention is still to replace `fstream`, `fstream-ignore`, and
|
||||
> `fstream-npm` with something much simpler and purpose-built. There's no real
|
||||
> reason to have a stream abstraction here when a simple recursive-descent
|
||||
> filesystem visitor and a synchronous function that can answer whether a given
|
||||
> path should be included in the packed tarball would do the job adequately.
|
||||
>
|
||||
> What's not yet clear is whether we'll need to replace `node-tar` in the
|
||||
> process. `node-tar` is a very robust implementation of tar (it handles, like,
|
||||
> everything), and it also includes some very important tweaks to prevent several
|
||||
> classes of security exploits involving maliciously crafted packages. However,
|
||||
> its packing API involves passing in an `fstream` instance, so we'd either need
|
||||
> to produce something that follows enough of `fstream`'s contract for `node-tar`
|
||||
> to keep working, or swap `node-tar` out for something like `tar-stream` (and
|
||||
> then ensuring that our use of `tar-stream` is secure, which could involve
|
||||
> security patches for either npm or `tar-stream`).
|
||||
|
||||
The testing and review of `fstream@1.0.10` that the team has done leads us to
|
||||
believe that this bug is fixed, but I'm feeling more than a little paranoid
|
||||
about fstream now, so it's important that people keep a close eye on their
|
||||
publishes for a while and let us know immediately if they notice any
|
||||
irregularities.
|
||||
|
||||
* [`8802f6c`](https://github.com/npm/npm/commit/8802f6c152ea35cb9e5269c077c3a2f9df411afc)
|
||||
[#5082](https://github.com/npm/npm/issues/5082) `fstream@1.0.10`: Ensure that
|
||||
entries are collected after a paused stream resumes.
|
||||
([@rvagg](https://github.com/rvagg))
|
||||
* [`c189723`](https://github.com/npm/npm/commit/c189723110497a17dac3b0596f2916deeed93ee7)
|
||||
[#5082](https://github.com/npm/npm/issues/5082) Remove the warning introduced
|
||||
in `npm@3.10.0`, because it should no longer be necessary.
|
||||
([@othiym23](https://github.com/othiym23))
|
||||
|
||||
#### *ERK*
|
||||
|
||||
Because the interaction between `fstream`, `fstream-ignore`, `fsream-npm`, and
|
||||
`node-tar` is so complex, it's proven difficult to add support for npm features
|
||||
like `bundledDependencies` without duplicating some logic within npm's code
|
||||
base. While [fixing a completely unrelated
|
||||
bug](https://github.com/npm/npm/issues/9642), we "cleaned up" some of this
|
||||
seemingly duplicated code, and in the process removed the code that ensured
|
||||
that the dependencies of `bundledDependencies` are themselves bundled. We've
|
||||
brought that code back into the code base (without reopening #9642), and added
|
||||
a test to ensure that this regression can't recur.
|
||||
|
||||
* [`1b6ceca`](https://github.com/npm/npm/commit/1b6ceca32fc81ca7cc7ac2eb7d11f687e6f87f26)
|
||||
[#13088](https://github.com/npm/npm/issues/13088) Partially restore npm's own
|
||||
version of the `fstream-npm` function `applyIgnores` to ensure that the
|
||||
dependencies of `bundledDependencies` are included in published packages.
|
||||
([@iarna](https://github.com/iarna))
|
||||
|
||||
#### GOODBYE, FAITHFUL FRIEND
|
||||
|
||||
At NodeConf Adventure 2016 (RIP in peace, Mikeal Rogers's NodeConf!), the CLI
|
||||
team had an opportunity to talk to representatives from some of the larger
|
||||
companies that we knew were still using Node.js 0.8 in production. After asking
|
||||
them whether they were still using 0.8, we got back blank stares and questions
|
||||
like, "0.8? You mean, from four years ago?" After establishing that being able
|
||||
to run npm in their legacy environments was no longer necessary, the CLI team
|
||||
made the decision to drop support for 0.8. (Faithful observers of our [team
|
||||
meetings](https://github.com/npm/npm/issues?utf8=%E2%9C%93&q=is%3Aissue+npm+cli+team+meeting+)
|
||||
will have known this was the plan for NodeConf since the beginning of 2016.)
|
||||
|
||||
In practice, this means only what's in the commit below: we've removed 0.8 from
|
||||
our continuous integration test matrix below, and will no longer be habitually
|
||||
testing changes under Node 0.8. We may also give ourselves permission to use
|
||||
`setImmediate()` in test code. However, since the project still supports
|
||||
Node.js 0.10 and 0.12, it's unlikely that patches that rely on ES 2015
|
||||
functionality will land anytime soon.
|
||||
|
||||
Looking forward, the team's current plan is to drop support for Node.js 0.10
|
||||
when its LTS maintenace window expires in October, 2016, and 0.12 when its
|
||||
maintenance / LTS window ends at the end of 2016. We will also drop support for
|
||||
Node.js 5.x when Node.js 6 becomes LTS and Node.js 7 is released, also in the
|
||||
October-December 2016 timeframe.
|
||||
|
||||
(Confused about Node.js's LTS policy? [Don't
|
||||
be!](https://github.com/nodejs/LTS) If you look at [this
|
||||
diagram](https://github.com/nodejs/LTS/blob/ce364a94b0e0619eba570cd57be396573e1ef889/schedule.png),
|
||||
it should make all of the preceding clear.)
|
||||
|
||||
If, in practice, this doesn't work with distribution packagers or other
|
||||
community stakeholders responsible for packaging and distributing Node.js and
|
||||
npm, please reach out to us. Aligning the npm CLI's LTS policy with Node's
|
||||
helps everybody minimize the amount of work they need to do, and since all of
|
||||
our teams are small and very busy, this is somewhere between a necessity and
|
||||
non-negotiable.
|
||||
|
||||
* [`d6afd5f`](https://github.com/npm/npm/commit/d6afd5ffb1b19e5d94aeee666afcb8adaced58db)
|
||||
Remove 0.8 from the Node.js testing matrix, and reorder to match real-world
|
||||
priority, with comments. ([@othiym23](https://github.com/othiym23))
|
||||
|
||||
### v3.10.0 (2016-06-16):
|
||||
|
||||
Do we have a release for you! We have our first new lifecycle since
|
||||
`version`, a new progress bar and a bunch of bug fixes.
|
||||
[I'm](https://github.com/iarna) really excited about this release, let me
|
||||
tell you!!
|
||||
|
||||
#### DANGER: PUBLISHING ON NODE 6.0.0
|
||||
|
||||
Publishing and packing are buggy under Node versions greater than 6.0.0.
|
||||
Please use Node.js LTS (4.4.x) to publish packages. See
|
||||
[#5082](https://github.com/npm/npm/issues/5082) for details and current
|
||||
status.
|
||||
|
||||
* [`4e52cef`](https://github.com/npm/npm/commit/4e52cef3d4170c8abab98149666ec599f8363233)
|
||||
[#13077](https://github.com/npm/npm/pull/13077)
|
||||
Warn when using Node 6+.
|
||||
([@othiym23](https://github.com/othiym23))
|
||||
|
||||
#### NEW LIFECYCLE SCRIPT: `shrinkwrap`
|
||||
|
||||
* [`e8c80f2`](https://github.com/npm/npm/commit/e8c80f20bfd5d1618e85dbab41660d6f3e5ce405)
|
||||
[#10744](https://github.com/npm/npm/issues/10744)
|
||||
You can now add `preshrinkwrap`, `shrinkwrap` and `postshrinkwrap` to your `package.json`
|
||||
scripts section. They are run when you run `npm shrinkwrap` or `npm install --save` with
|
||||
an `npm-shrinkwrap.json` present in your module directory.
|
||||
|
||||
`preshrinkwrap` is run prior to generating the new `npm-shrinkwrap.json` and the other two
|
||||
are run after.
|
||||
([@SimenB](https://github.com/SimenB))
|
||||
|
||||
#### NEW PROGRESS BAR
|
||||
|
||||

|
||||
|
||||
We have a new progress bar and a bunch of related improvements!
|
||||
|
||||
##### BLOCKING BLOCKING
|
||||
|
||||
**!!WARNING!!** As a part of this change we now explicitly set
|
||||
`process.stdout` and `process.stderr` to be _blocking_ if they are ttys,
|
||||
using [set-blocking](https://www.npmjs.com/package/set-blocking). This is
|
||||
necessary to ensure that we can fully erase the progress bar before we start
|
||||
writing other things out to the console.
|
||||
|
||||
Prior to Node.js 6.0.0, they were already blocking on Windows, and MacOS.
|
||||
Meanwhile, on Linux they were always non-blocking but had large (64kb)
|
||||
buffers, which largely made this a non-issue there. Starting with Node.js
|
||||
6.0.0 they became non-blocking on MacOS and that caused some unexpected
|
||||
issues (see [nodejs/node#6456](https://github.com/nodejs/node/issues/6456)).
|
||||
|
||||
If you are a Linux user, it's plausible that this might have a performance
|
||||
impact if your terminal can't keep up with output rate. If you experience
|
||||
this, we want to know! Please [file an
|
||||
issue](https://github.com/npm/npm/issues/new) at our issue tracker.
|
||||
|
||||
##### BETTER LAYOUT
|
||||
|
||||
Let's start by talking about what goes into the new progress bar:
|
||||
|
||||
```
|
||||
⸨░░░░░░░░░░⠂⠂⠂⠂⠂⠂⠂⠂⸩ ⠹ loadExtraneous: verb afterAdd /Users/rebecca/.npm/null/0.0.0/package/package.json written
|
||||
↑‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ ↑ ‾‾‾‾‾‾‾‾‾↑‾‾‾‾ ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾↑‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
percent complete spinner current thing we're doing most recent log line
|
||||
```
|
||||
|
||||
The _spinner_ is intended as an activity indicator–it moves whenever
|
||||
npm sends something to its logs. It also spins at a constant speed while
|
||||
waiting on the network.
|
||||
|
||||
The _current thing we're doing_ relates to how we track how much work has
|
||||
been done. It's the name of the unit of work we most recently started or
|
||||
completed some of. Sometimes these names are more obvious than others and
|
||||
that's something we'll look at improving over time.
|
||||
|
||||
And finally, the _most recent log line_ is exactly that, it's the most
|
||||
recent line that you would have seen if you were running with
|
||||
`--loglevel=silly` or were watching the `npm-debug.log`. These are written
|
||||
to be useful to the npm developers above all else, so they may sometimes be
|
||||
a little cryptic.
|
||||
|
||||
* [`6789978`](https://github.com/npm/npm/commit/6789978ab0713f67928177a9109fed43953ccbda)
|
||||
[#13075](https://github.com/npm/npm/pull/13075)
|
||||
`npmlog@3.1.2`: Update to the latest npmlog, which includes the new and
|
||||
improved progress bar layout.
|
||||
([@iarna](https://github.com/iarna))
|
||||
|
||||
##### MORE PERFORMANT
|
||||
|
||||
The underlying code for the progress bar was rewritten, in part with
|
||||
performance in mind. Previously whenever you updated the progress bar it
|
||||
would check an internal variable for how long it had been since the last
|
||||
update and if it had been long enough, it would print out what you gave it.
|
||||
With the new progress bar we do updates at a fixed interval (with
|
||||
`setInterval`) and "updating" the progress bar just updates some variables
|
||||
that will be used when the next tick of the progress bar happens. Currently
|
||||
progress bar updates happen every 50ms, although that's open to tuning.
|
||||
|
||||
##### WIDE(R) COMPATIBILITY
|
||||
|
||||
I spent a lot of time working our Unicode support. There were a few issues
|
||||
that plagued us:
|
||||
|
||||
Previously one of the characters we used was _ambiguous width_ which means
|
||||
that it was possible to configure your terminal to display it as _full
|
||||
width_. If you did this, the output would be broken because we assumed it
|
||||
was a _half width_ character. We no longer use any of these characters.
|
||||
|
||||
Previously, we defaulted to using Unicode on Windows. This isn't a safe
|
||||
assumption, however, as folks in non-US locales often use other code pages
|
||||
for their terminals. Windows doesn't provide* any facility available to
|
||||
Node.js for determining the current code page, so we no longer try to use
|
||||
Unicode on Windows.
|
||||
|
||||
_\* The facilities it does provide are a command line tool and a windows
|
||||
system call. The former isn't satisfactory for speed reasons and the latter
|
||||
can't be accessed from a JS-only Node.js program._
|
||||
|
||||
##### FOR THE FUTURE: THEMES
|
||||
|
||||
The new version of the progress bar library supports plugable themes. Adding
|
||||
support to npm shouldn't be too difficult. The built in themes are:
|
||||
|
||||
* `ASCII` – The fallback theme which is always available.
|
||||
* `colorASCII` – Inverts the color of the completed portion of the progress
|
||||
bar. The default on Windows and usually on Linux. (Color support is
|
||||
determined by looking at the `TERM` environment variable.)
|
||||
* `brailleSpinner` – A braille based spinner and other unicode enhancements. MacOS only.
|
||||
* `colorBrailleSpinner` – The default on MacOS, a combination of the above two.
|
||||
|
||||
##### LESS GARBLED OUTPUT
|
||||
|
||||
As a part of landing this I've also taken the opportunity to more
|
||||
systematically disable the progress bar prior to printing to `stdout` or
|
||||
running external commands (in particular: git). This should ensure that the
|
||||
progress bar doesn't get left on screen after something else prints
|
||||
something. We also are now much more zealous about erasing the progress bar
|
||||
on exit, so if you `Ctrl-C` out of an install we'll still cleanup the
|
||||
progress bar.
|
||||
|
||||
* [`63f153c`](https://github.com/npm/npm/commit/63f153c743f9354376bfb9dad42bd028a320fd1f)
|
||||
[#13075](https://github.com/npm/npm/pull/13075)
|
||||
Consistently make sure that the progress bar is hidden before we try to
|
||||
write to stdout.
|
||||
([@iarna](https://github.com/iarna))
|
||||
* [`8da79fa`](https://github.com/npm/npm/commit/8da79fa60de4972dca406887623d4e430d1609a1)
|
||||
[#13075](https://github.com/npm/npm/pull/13075)
|
||||
Be more methodical about disabling progress bars before running external
|
||||
commands.
|
||||
([@iarna](https://github.com/iarna))
|
||||
|
||||
#### REPLACE `process.nextTick` WITH `asap` ASAP
|
||||
|
||||
* [`5873b56`](https://github.com/npm/npm/commit/5873b56cb315437dfe97e747811c0b9c297bfd38)
|
||||
[`254ad7e`](https://github.com/npm/npm/commit/254ad7e38f978b81046d242297fe8b122bfb5852)
|
||||
[#12754](https://github.com/npm/npm/issues/12754)
|
||||
Use `asap` in preference over `process.nextTick` to avoid recursion warnings.
|
||||
Under the hood `asap` uses `setImmediate` when available and falls back to
|
||||
`process.nextTick` when it's not. Versions of node that don't support
|
||||
`setImmediate` have a version of `process.nextTick` that actually behaves
|
||||
like the current `setImmediate`.
|
||||
([@lxe](https://github.com/lxe))
|
||||
|
||||
#### FIXES AND REFACTORING
|
||||
|
||||
Sometimes the installer would get it into its head that it could move or
|
||||
remove things that it really shouldn't have. While the reproducers for this were
|
||||
often a bit complicated (the core reproducer involved five symlinks(!)), it turns
|
||||
out this is an easy scenario to end up in if your project has a bunch of small
|
||||
modules and you're linking them while developing them.
|
||||
|
||||
Fixing this ended up involving doing an important and overdue rewrite of how
|
||||
the installer keeps track of (and interrogates) the relationships between
|
||||
modules. This likely fixes other related bugs, and in the coming weeks
|
||||
we'll verify and close them as we find them. There are a whole slew of
|
||||
commits related to this rewrite, and if you'd like to learn more check
|
||||
out the PR where I describe what I did in detail: [#12775](https://github.com/npm/npm/pull/12775)
|
||||
|
||||
* [`8f3e111`](https://github.com/npm/npm/commit/8f3e111fdd2ce7824864f77b04e5206bdaf961a1)
|
||||
[`c0b0ed1`](https://github.com/npm/npm/commit/c0b0ed1e9945c01b2e68bf22af3fe4005aa4bcd4)
|
||||
[#10800](https://github.com/npm/npm/issues/10800)
|
||||
Remove install pruning stage–this was obsoleted by making the installer keep
|
||||
itself up to date as it goes along. This is NOT related to `npm prune`.
|
||||
([@iarna](https://github.com/iarna))
|
||||
|
||||
#### MAKE OUTDATED MORE WIDELY LEGIBLE
|
||||
|
||||
* [`21c60e9`](https://github.com/npm/npm/commit/21c60e9bb56d47da17b79681f2142b3dcf4c804b)
|
||||
[#12843](https://github.com/npm/npm/pull/12843)
|
||||
In `npm outdated, stop coloring the _Location_ and _Package Type_ columns.
|
||||
Previously they were colored dark gray, which was hard to read for some
|
||||
users.
|
||||
([@tribou](https://github.com/tribou))
|
||||
|
||||
#### DOCUMENTATION UPDATE
|
||||
|
||||
* [`eb0a72e`](https://github.com/npm/npm/commit/eb0a72eb95862c1d0d41a259d138ab601d538793)
|
||||
[#12983](https://github.com/npm/npm/pull/12983)
|
||||
Describe how to run the lifecycle scripts of dependencies. How you do
|
||||
this changed with `npm` v2.
|
||||
([@Tapppi](https://github.com/Tapppi))
|
||||
|
||||
### DEPENDENCY UPDATES
|
||||
|
||||
* [`da743dc`](https://github.com/npm/npm/commit/da743dc2153fed8baca3dada611b188f53ab5931)
|
||||
`which@1.2.10`:
|
||||
Fix bug where unnecessary special case path handling for Windows could
|
||||
produce unexpected results on Unix systems.
|
||||
([@isaacs](https://github.com/isaacs))
|
||||
* [`4533bd5`](https://github.com/npm/npm/commit/4533bd501d54aeedfec3884f4fd54e8c2edd6020)
|
||||
`npm-user-validate@0.1.4`:
|
||||
Validate the length of usernames.
|
||||
([@aredridel](https://github.com/aredridel))
|
||||
* [`4a18922`](https://github.com/npm/npm/commit/4a18922e56f9dc902fbb4daa8f5fafa4a1b89376)
|
||||
`glob@7.0.4`:
|
||||
Fixes issues with Node 6 and "long or excessively symlink-looping paths".
|
||||
([@isaacs](https://github.com/isaacs))
|
||||
* [`257fe11`](https://github.com/npm/npm/commit/257fe11052987e5cfec2abdf52392dd95a6c6ef3)
|
||||
`npm-package-arg@4.2.0`:
|
||||
Add `escapedName` to the result. It is suitable for passing through to a
|
||||
registry without further processing.
|
||||
([@nexdrew](https://github.com/nexdrew))
|
||||
* [`dda3ca7`](https://github.com/npm/npm/commit/dda3ca70f74879106589ef29e167c8b91ef5aa4c)
|
||||
`wrappy@1.0.2`
|
||||
([@zkat](https://github.com/zkat))
|
||||
* [`25f1db5`](https://github.com/npm/npm/commit/25f1db504d0fd8c97211835f0027027fe95e0ef3)
|
||||
`readable-stream@2.1.4`
|
||||
([@calvinmetcalf](https://github.com/calvinmetcalf))
|
||||
* [`9d64fe6`](https://github.com/npm/npm/commit/9d64fe676ebc6949c687ffb85bd93eca3137fc0d)
|
||||
`abbrev@1.0.9`
|
||||
([@isaacs](https://github.com/isaacs))
|
||||
|
||||
### v3.9.6 (2016-06-02):
|
||||
|
||||
#### SMALL OUTPUT TWEAK
|
||||
|
||||
* [`0bdc9d1`](https://github.com/npm/npm/commit/0bdc9d13b73df07e63a58470ea001fda490e5869)
|
||||
[#12879](https://github.com/npm/npm/pull/12879)
|
||||
The usage output for npm commands was somehow under the impression that
|
||||
the singular form of `aliases` is `aliase`. This has been corrected to show
|
||||
`alias` instead.
|
||||
([@intelliot](https://github.com/intelliot))
|
||||
|
||||
#### DOC UPDATES
|
||||
|
||||
* [`f771b49`](https://github.com/npm/npm/commit/f771b49f5d65bbef540c231fbfcca71cacdce4db)
|
||||
[#12933](https://github.com/npm/npm/pull/12933)
|
||||
Add `config.gypi` to list of files that are always ignored in the
|
||||
`package.json` manpage.
|
||||
([@Jokero](https://github.com/Jokero))
|
||||
|
||||
#### DEPENDENCY UPDATES
|
||||
|
||||
* [`61c1d9c`](https://github.com/npm/npm/commit/61c1d9cd4b2296bd41d55a5c58e35ca5f028b9bc)
|
||||
[#12926](https://github.com/npm/npm/pull/12926)
|
||||
Removed unused dependency `lodash.isarray`.
|
||||
([@mmalecki](https://github.com/mmalecki))
|
||||
* [`168ed28`](https://github.com/npm/npm/commit/168ed2834b2c6db8bb39f81baadc0bf275807328)
|
||||
[#12926](https://github.com/npm/npm/pull/12926)
|
||||
Removed unused dependency `lodash.keys`.
|
||||
([@mmalecki](https://github.com/mmalecki))
|
||||
|
||||
### v3.9.5 (2016-05-27):
|
||||
|
||||
Just a quick point release. We had an issue where I (Kat) included the
|
||||
|
12
deps/npm/appveyor.yml
vendored
12
deps/npm/appveyor.yml
vendored
@ -2,13 +2,15 @@ environment:
|
||||
matrix:
|
||||
# LTS is our most important target
|
||||
- nodejs_version: "4"
|
||||
# latest
|
||||
- nodejs_version: "5"
|
||||
# I like 0.10 better than 0.12
|
||||
# next LTS and master is next most important
|
||||
- nodejs_version: "6"
|
||||
# still in LTS maintenance until fall 2016
|
||||
# (also still in wide use)
|
||||
- nodejs_version: "0.10"
|
||||
# will be unsupported as soon as 6 becomes LTS and 7 released
|
||||
- nodejs_version: "5"
|
||||
# technically in LTS / distros, unbeloved
|
||||
- nodejs_version: "0.12"
|
||||
# EOL summer 2016, most likely
|
||||
- nodejs_version: "0.8"
|
||||
COVERALLS_REPO_TOKEN:
|
||||
secure: XdC0aySefK0HLh1GNk6aKrzZPbCfPQLyA4mYtFGEp4DrTuZA/iuCUS0LDqFYO8JQ
|
||||
platform:
|
||||
|
10
deps/npm/doc/cli/npm-shrinkwrap.md
vendored
10
deps/npm/doc/cli/npm-shrinkwrap.md
vendored
@ -109,6 +109,14 @@ resolution using "version" if one isn't.
|
||||
|
||||
2. The tree is walked and any missing dependencies are installed in the usual fashion.
|
||||
|
||||
If `preshrinkwrap`, `shrinkwrap` or `postshrinkwrap` are in the `scripts` property of the
|
||||
`package.json`, they will be executed by running `npm shrinkwrap`.
|
||||
`preshrinkwrap` and `shrinkwrap` are executed before the shrinkwrap, `postshrinkwrap` is
|
||||
executed afterwards. For example to run some postprocessing on the generated file:
|
||||
|
||||
"scripts": { "postshrinkwrap": "node fix-shrinkwrap.js" }
|
||||
|
||||
|
||||
### Using shrinkwrapped packages
|
||||
|
||||
Using a shrinkwrapped package is no different than using any other
|
||||
@ -174,5 +182,7 @@ contents rather than versions.
|
||||
## SEE ALSO
|
||||
|
||||
* npm-install(1)
|
||||
* npm-run-script(1)
|
||||
* npm-scripts(7)
|
||||
* package.json(5)
|
||||
* npm-ls(1)
|
||||
|
1
deps/npm/doc/files/package.json.md
vendored
1
deps/npm/doc/files/package.json.md
vendored
@ -202,6 +202,7 @@ Conversely, some files are always ignored:
|
||||
* `npm-debug.log`
|
||||
* `.npmrc`
|
||||
* `node_modules`
|
||||
* `config.gypi`
|
||||
|
||||
## main
|
||||
|
||||
|
2
deps/npm/doc/misc/npm-config.md
vendored
2
deps/npm/doc/misc/npm-config.md
vendored
@ -676,7 +676,7 @@ Set to true to run in "production" mode.
|
||||
|
||||
### progress
|
||||
|
||||
* Default: true
|
||||
* Default: true, unless TRAVIS or CI env vars set.
|
||||
* Type: Boolean
|
||||
|
||||
When set to `true`, npm will display a progress bar during time intensive
|
||||
|
5
deps/npm/doc/misc/npm-scripts.md
vendored
5
deps/npm/doc/misc/npm-scripts.md
vendored
@ -32,11 +32,14 @@ following scripts:
|
||||
* prerestart, restart, postrestart:
|
||||
Run by the `npm restart` command. Note: `npm restart` will run the
|
||||
stop and start scripts if no `restart` script is provided.
|
||||
* preshrinkwrap, shrinkwrap, postshrinkwrap:
|
||||
Run by the `npm shrinkwrap` command.
|
||||
|
||||
Additionally, arbitrary scripts can be executed by running `npm
|
||||
run-script <stage>`. *Pre* and *post* commands with matching
|
||||
names will be run for those as well (e.g. `premyscript`, `myscript`,
|
||||
`postmyscript`).
|
||||
`postmyscript`). Scripts from dependencies can be run with `npm explore
|
||||
<pkg> -- npm run <stage>`.
|
||||
|
||||
## COMMON USES
|
||||
|
||||
|
2
deps/npm/html/doc/README.html
vendored
2
deps/npm/html/doc/README.html
vendored
@ -126,5 +126,5 @@ will no doubt tell you to put the output in a gist or email.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer"><a href="../doc/README.html">README</a> — npm@3.9.5</p>
|
||||
<p id="footer"><a href="../doc/README.html">README</a> — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-access.html
vendored
2
deps/npm/html/doc/cli/npm-access.html
vendored
@ -84,5 +84,5 @@ with an HTTP 402 status code (logically enough), unless you use
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-access — npm@3.9.5</p>
|
||||
<p id="footer">npm-access — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-adduser.html
vendored
2
deps/npm/html/doc/cli/npm-adduser.html
vendored
@ -72,5 +72,5 @@ over any global configuration.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-adduser — npm@3.9.5</p>
|
||||
<p id="footer">npm-adduser — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-bin.html
vendored
2
deps/npm/html/doc/cli/npm-bin.html
vendored
@ -35,5 +35,5 @@
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-bin — npm@3.9.5</p>
|
||||
<p id="footer">npm-bin — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-bugs.html
vendored
2
deps/npm/html/doc/cli/npm-bugs.html
vendored
@ -55,5 +55,5 @@ a <code>package.json</code> in the current folder and use the <code>name</code>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-bugs — npm@3.9.5</p>
|
||||
<p id="footer">npm-bugs — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-build.html
vendored
2
deps/npm/html/doc/cli/npm-build.html
vendored
@ -40,5 +40,5 @@ directly, run:</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-build — npm@3.9.5</p>
|
||||
<p id="footer">npm-build — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-bundle.html
vendored
2
deps/npm/html/doc/cli/npm-bundle.html
vendored
@ -31,5 +31,5 @@ install packages into the local space.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-bundle — npm@3.9.5</p>
|
||||
<p id="footer">npm-bundle — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-cache.html
vendored
2
deps/npm/html/doc/cli/npm-cache.html
vendored
@ -81,5 +81,5 @@ they do not make an HTTP request to the registry.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-cache — npm@3.9.5</p>
|
||||
<p id="footer">npm-cache — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-completion.html
vendored
2
deps/npm/html/doc/cli/npm-completion.html
vendored
@ -43,5 +43,5 @@ completions based on the arguments.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-completion — npm@3.9.5</p>
|
||||
<p id="footer">npm-completion — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-config.html
vendored
2
deps/npm/html/doc/cli/npm-config.html
vendored
@ -67,5 +67,5 @@ global config.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-config — npm@3.9.5</p>
|
||||
<p id="footer">npm-config — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-dedupe.html
vendored
2
deps/npm/html/doc/cli/npm-dedupe.html
vendored
@ -61,5 +61,5 @@ result in new modules being installed.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-dedupe — npm@3.9.5</p>
|
||||
<p id="footer">npm-dedupe — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-deprecate.html
vendored
2
deps/npm/html/doc/cli/npm-deprecate.html
vendored
@ -38,5 +38,5 @@ something like this:</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-deprecate — npm@3.9.5</p>
|
||||
<p id="footer">npm-deprecate — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-dist-tag.html
vendored
2
deps/npm/html/doc/cli/npm-dist-tag.html
vendored
@ -87,5 +87,5 @@ begin with a number or the letter <code>v</code>.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-dist-tag — npm@3.9.5</p>
|
||||
<p id="footer">npm-dist-tag — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-docs.html
vendored
2
deps/npm/html/doc/cli/npm-docs.html
vendored
@ -56,5 +56,5 @@ the current folder and use the <code>name</code> property.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-docs — npm@3.9.5</p>
|
||||
<p id="footer">npm-docs — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-edit.html
vendored
2
deps/npm/html/doc/cli/npm-edit.html
vendored
@ -49,5 +49,5 @@ or <code>"notepad"</code> on Windows.</li>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-edit — npm@3.9.5</p>
|
||||
<p id="footer">npm-edit — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-explore.html
vendored
2
deps/npm/html/doc/cli/npm-explore.html
vendored
@ -49,5 +49,5 @@ Windows</li>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-explore — npm@3.9.5</p>
|
||||
<p id="footer">npm-explore — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-help-search.html
vendored
2
deps/npm/html/doc/cli/npm-help-search.html
vendored
@ -45,5 +45,5 @@ where the terms were found in the documentation.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-help-search — npm@3.9.5</p>
|
||||
<p id="footer">npm-help-search — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-help.html
vendored
2
deps/npm/html/doc/cli/npm-help.html
vendored
@ -50,5 +50,5 @@ matches are equivalent to specifying a topic name.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-help — npm@3.9.5</p>
|
||||
<p id="footer">npm-help — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-init.html
vendored
2
deps/npm/html/doc/cli/npm-init.html
vendored
@ -48,5 +48,5 @@ defaults and not prompt you for any options.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-init — npm@3.9.5</p>
|
||||
<p id="footer">npm-init — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-install-test.html
vendored
2
deps/npm/html/doc/cli/npm-install-test.html
vendored
@ -42,4 +42,4 @@ takes exactly the same arguments as <code>npm install</code>.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-install-test — npm@3.9.5</p>
|
||||
<p id="footer">npm-install-test — npm@3.10.2</p>
|
||||
|
2
deps/npm/html/doc/cli/npm-install.html
vendored
2
deps/npm/html/doc/cli/npm-install.html
vendored
@ -312,5 +312,5 @@ affects a real use-case, it will be investigated.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-install — npm@3.9.5</p>
|
||||
<p id="footer">npm-install — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-link.html
vendored
2
deps/npm/html/doc/cli/npm-link.html
vendored
@ -73,5 +73,5 @@ include that scope, e.g.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-link — npm@3.9.5</p>
|
||||
<p id="footer">npm-link — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-logout.html
vendored
2
deps/npm/html/doc/cli/npm-logout.html
vendored
@ -51,5 +51,5 @@ it takes precedence.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-logout — npm@3.9.5</p>
|
||||
<p id="footer">npm-logout — npm@3.10.2</p>
|
||||
|
||||
|
4
deps/npm/html/doc/cli/npm-ls.html
vendored
4
deps/npm/html/doc/cli/npm-ls.html
vendored
@ -21,7 +21,7 @@ installed, as well as their dependencies, in a tree-structure.</p>
|
||||
limit the results to only the paths to the packages named. Note that
|
||||
nested packages will <em>also</em> show the paths to the specified packages.
|
||||
For example, running <code>npm ls promzard</code> in npm's source tree will show:</p>
|
||||
<pre><code>npm@3.9.5 /path/to/npm
|
||||
<pre><code>npm@3.10.2 /path/to/npm
|
||||
└─┬ init-package-json@0.0.4
|
||||
└── promzard@0.1.5
|
||||
</code></pre><p>It will print out extraneous, missing, and invalid packages.</p>
|
||||
@ -104,5 +104,5 @@ project.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-ls — npm@3.9.5</p>
|
||||
<p id="footer">npm-ls — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-outdated.html
vendored
2
deps/npm/html/doc/cli/npm-outdated.html
vendored
@ -116,5 +116,5 @@ project.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-outdated — npm@3.9.5</p>
|
||||
<p id="footer">npm-outdated — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-owner.html
vendored
2
deps/npm/html/doc/cli/npm-owner.html
vendored
@ -51,5 +51,5 @@ that is not implemented at this time.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-owner — npm@3.9.5</p>
|
||||
<p id="footer">npm-owner — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-pack.html
vendored
2
deps/npm/html/doc/cli/npm-pack.html
vendored
@ -41,5 +41,5 @@ overwritten the second time.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-pack — npm@3.9.5</p>
|
||||
<p id="footer">npm-pack — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-ping.html
vendored
2
deps/npm/html/doc/cli/npm-ping.html
vendored
@ -32,4 +32,4 @@
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-ping — npm@3.9.5</p>
|
||||
<p id="footer">npm-ping — npm@3.10.2</p>
|
||||
|
2
deps/npm/html/doc/cli/npm-prefix.html
vendored
2
deps/npm/html/doc/cli/npm-prefix.html
vendored
@ -38,5 +38,5 @@ to contain a package.json file unless <code>-g</code> is also specified.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-prefix — npm@3.9.5</p>
|
||||
<p id="footer">npm-prefix — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-prune.html
vendored
2
deps/npm/html/doc/cli/npm-prune.html
vendored
@ -40,5 +40,5 @@ negate <code>NODE_ENV</code> being set to <code>production</code>.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-prune — npm@3.9.5</p>
|
||||
<p id="footer">npm-prune — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-publish.html
vendored
2
deps/npm/html/doc/cli/npm-publish.html
vendored
@ -72,5 +72,5 @@ it is removed with <a href="../cli/npm-unpublish.html">npm-unpublish(1)</a>.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-publish — npm@3.9.5</p>
|
||||
<p id="footer">npm-publish — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-rebuild.html
vendored
2
deps/npm/html/doc/cli/npm-rebuild.html
vendored
@ -35,5 +35,5 @@ the new binary.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-rebuild — npm@3.9.5</p>
|
||||
<p id="footer">npm-rebuild — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-repo.html
vendored
2
deps/npm/html/doc/cli/npm-repo.html
vendored
@ -41,5 +41,5 @@ a <code>package.json</code> in the current folder and use the <code>name</code>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-repo — npm@3.9.5</p>
|
||||
<p id="footer">npm-repo — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-restart.html
vendored
2
deps/npm/html/doc/cli/npm-restart.html
vendored
@ -53,5 +53,5 @@ behavior will be accompanied by an increase in major version number</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-restart — npm@3.9.5</p>
|
||||
<p id="footer">npm-restart — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-root.html
vendored
2
deps/npm/html/doc/cli/npm-root.html
vendored
@ -35,5 +35,5 @@
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-root — npm@3.9.5</p>
|
||||
<p id="footer">npm-root — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-run-script.html
vendored
2
deps/npm/html/doc/cli/npm-run-script.html
vendored
@ -63,5 +63,5 @@ you will be given a warning to run <code>npm install</code>, just in case you
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-run-script — npm@3.9.5</p>
|
||||
<p id="footer">npm-run-script — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-search.html
vendored
2
deps/npm/html/doc/cli/npm-search.html
vendored
@ -57,5 +57,5 @@ Pass a different registry url such as the default above in order to override thi
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-search — npm@3.9.5</p>
|
||||
<p id="footer">npm-search — npm@3.10.2</p>
|
||||
|
||||
|
11
deps/npm/html/doc/cli/npm-shrinkwrap.html
vendored
11
deps/npm/html/doc/cli/npm-shrinkwrap.html
vendored
@ -99,7 +99,12 @@ resolution using "version" if one isn't.</p>
|
||||
<li><p>The tree is walked and any missing dependencies are installed in the usual fashion.</p>
|
||||
</li>
|
||||
</ol>
|
||||
<h3 id="using-shrinkwrapped-packages">Using shrinkwrapped packages</h3>
|
||||
<p>If <code>preshrinkwrap</code>, <code>shrinkwrap</code> or <code>postshrinkwrap</code> are in the <code>scripts</code> property of the
|
||||
<code>package.json</code>, they will be executed by running <code>npm shrinkwrap</code>.
|
||||
<code>preshrinkwrap</code> and <code>shrinkwrap</code> are executed before the shrinkwrap, <code>postshrinkwrap</code> is
|
||||
executed afterwards. For example to run some postprocessing on the generated file:</p>
|
||||
<pre><code>"scripts": { "postshrinkwrap": "node fix-shrinkwrap.js" }
|
||||
</code></pre><h3 id="using-shrinkwrapped-packages">Using shrinkwrapped packages</h3>
|
||||
<p>Using a shrinkwrapped package is no different than using any other
|
||||
package: you can <code>npm install</code> it by hand, or add a dependency to your
|
||||
<code>package.json</code> file and <code>npm install</code> it.</p>
|
||||
@ -154,6 +159,8 @@ contents rather than versions.</p>
|
||||
<h2 id="see-also">SEE ALSO</h2>
|
||||
<ul>
|
||||
<li><a href="../cli/npm-install.html">npm-install(1)</a></li>
|
||||
<li><a href="../cli/npm-run-script.html">npm-run-script(1)</a></li>
|
||||
<li><a href="../misc/npm-scripts.html">npm-scripts(7)</a></li>
|
||||
<li><a href="../files/package.json.html">package.json(5)</a></li>
|
||||
<li><a href="../cli/npm-ls.html">npm-ls(1)</a></li>
|
||||
</ul>
|
||||
@ -169,5 +176,5 @@ contents rather than versions.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-shrinkwrap — npm@3.9.5</p>
|
||||
<p id="footer">npm-shrinkwrap — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-star.html
vendored
2
deps/npm/html/doc/cli/npm-star.html
vendored
@ -36,5 +36,5 @@ a vaguely positive way to show that you care.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-star — npm@3.9.5</p>
|
||||
<p id="footer">npm-star — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-stars.html
vendored
2
deps/npm/html/doc/cli/npm-stars.html
vendored
@ -36,5 +36,5 @@ you will most certainly enjoy this command.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-stars — npm@3.9.5</p>
|
||||
<p id="footer">npm-stars — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-start.html
vendored
2
deps/npm/html/doc/cli/npm-start.html
vendored
@ -39,5 +39,5 @@ more details.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-start — npm@3.9.5</p>
|
||||
<p id="footer">npm-start — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-stop.html
vendored
2
deps/npm/html/doc/cli/npm-stop.html
vendored
@ -34,5 +34,5 @@
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-stop — npm@3.9.5</p>
|
||||
<p id="footer">npm-stop — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-tag.html
vendored
2
deps/npm/html/doc/cli/npm-tag.html
vendored
@ -63,5 +63,5 @@ that do not begin with a number or the letter <code>v</code>.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-tag — npm@3.9.5</p>
|
||||
<p id="footer">npm-tag — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-team.html
vendored
2
deps/npm/html/doc/cli/npm-team.html
vendored
@ -67,4 +67,4 @@ use the <code>npm access</code> command to grant or revoke the appropriate permi
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-team — npm@3.9.5</p>
|
||||
<p id="footer">npm-team — npm@3.10.2</p>
|
||||
|
2
deps/npm/html/doc/cli/npm-test.html
vendored
2
deps/npm/html/doc/cli/npm-test.html
vendored
@ -38,5 +38,5 @@ true.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-test — npm@3.9.5</p>
|
||||
<p id="footer">npm-test — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-uninstall.html
vendored
2
deps/npm/html/doc/cli/npm-uninstall.html
vendored
@ -60,5 +60,5 @@ npm uninstall dtrace-provider --save-optional
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-uninstall — npm@3.9.5</p>
|
||||
<p id="footer">npm-uninstall — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-unpublish.html
vendored
2
deps/npm/html/doc/cli/npm-unpublish.html
vendored
@ -47,5 +47,5 @@ package again, a new version number must be used.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-unpublish — npm@3.9.5</p>
|
||||
<p id="footer">npm-unpublish — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-update.html
vendored
2
deps/npm/html/doc/cli/npm-update.html
vendored
@ -118,5 +118,5 @@ be <em>downgraded</em>.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-update — npm@3.9.5</p>
|
||||
<p id="footer">npm-update — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-version.html
vendored
2
deps/npm/html/doc/cli/npm-version.html
vendored
@ -100,5 +100,5 @@ and tag up to the server, and deletes the <code>build/temp</code> directory.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-version — npm@3.9.5</p>
|
||||
<p id="footer">npm-version — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-view.html
vendored
2
deps/npm/html/doc/cli/npm-view.html
vendored
@ -86,5 +86,5 @@ the field name.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-view — npm@3.9.5</p>
|
||||
<p id="footer">npm-view — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/cli/npm-whoami.html
vendored
2
deps/npm/html/doc/cli/npm-whoami.html
vendored
@ -33,5 +33,5 @@
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-whoami — npm@3.9.5</p>
|
||||
<p id="footer">npm-whoami — npm@3.10.2</p>
|
||||
|
||||
|
6
deps/npm/html/doc/cli/npm.html
vendored
6
deps/npm/html/doc/cli/npm.html
vendored
@ -13,7 +13,7 @@
|
||||
<h2 id="synopsis">SYNOPSIS</h2>
|
||||
<pre><code>npm <command> [args]
|
||||
</code></pre><h2 id="version">VERSION</h2>
|
||||
<p>3.9.5</p>
|
||||
<p>3.10.2</p>
|
||||
<h2 id="description">DESCRIPTION</h2>
|
||||
<p>npm is the package manager for the Node JavaScript platform. It puts
|
||||
modules in place so that node can find them, and manages dependency
|
||||
@ -126,7 +126,7 @@ will no doubt tell you to put the output in a gist or email.</p>
|
||||
<p><a href="http://blog.izs.me/">Isaac Z. Schlueter</a> ::
|
||||
<a href="https://github.com/isaacs/">isaacs</a> ::
|
||||
<a href="http://twitter.com/izs">@izs</a> ::
|
||||
<a href="mailto:i@izs.me">i@izs.me</a></p>
|
||||
<a href="mailto:i@izs.me">i@izs.me</a></p>
|
||||
<h2 id="see-also">SEE ALSO</h2>
|
||||
<ul>
|
||||
<li><a href="../cli/npm-help.html">npm-help(1)</a></li>
|
||||
@ -150,5 +150,5 @@ will no doubt tell you to put the output in a gist or email.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm — npm@3.9.5</p>
|
||||
<p id="footer">npm — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/files/npm-folders.html
vendored
2
deps/npm/html/doc/files/npm-folders.html
vendored
@ -182,5 +182,5 @@ cannot be found elsewhere. See <code><a href="../files/package.json.html">packa
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-folders — npm@3.9.5</p>
|
||||
<p id="footer">npm-folders — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/files/npm-global.html
vendored
2
deps/npm/html/doc/files/npm-global.html
vendored
@ -182,5 +182,5 @@ cannot be found elsewhere. See <code><a href="../files/package.json.html">packa
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-folders — npm@3.9.5</p>
|
||||
<p id="footer">npm-folders — npm@3.10.2</p>
|
||||
|
||||
|
3
deps/npm/html/doc/files/npm-json.html
vendored
3
deps/npm/html/doc/files/npm-json.html
vendored
@ -160,6 +160,7 @@ works just like a <code>.gitignore</code>.</p>
|
||||
<li><code>npm-debug.log</code></li>
|
||||
<li><code>.npmrc</code></li>
|
||||
<li><code>node_modules</code></li>
|
||||
<li><code>config.gypi</code></li>
|
||||
</ul>
|
||||
<h2 id="main">main</h2>
|
||||
<p>The main field is a module ID that is the primary entry point to your program.
|
||||
@ -580,5 +581,5 @@ ignored.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">package.json — npm@3.9.5</p>
|
||||
<p id="footer">package.json — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/files/npmrc.html
vendored
2
deps/npm/html/doc/files/npmrc.html
vendored
@ -83,5 +83,5 @@ manner.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npmrc — npm@3.9.5</p>
|
||||
<p id="footer">npmrc — npm@3.10.2</p>
|
||||
|
||||
|
3
deps/npm/html/doc/files/package.json.html
vendored
3
deps/npm/html/doc/files/package.json.html
vendored
@ -160,6 +160,7 @@ works just like a <code>.gitignore</code>.</p>
|
||||
<li><code>npm-debug.log</code></li>
|
||||
<li><code>.npmrc</code></li>
|
||||
<li><code>node_modules</code></li>
|
||||
<li><code>config.gypi</code></li>
|
||||
</ul>
|
||||
<h2 id="main">main</h2>
|
||||
<p>The main field is a module ID that is the primary entry point to your program.
|
||||
@ -580,5 +581,5 @@ ignored.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">package.json — npm@3.9.5</p>
|
||||
<p id="footer">package.json — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/index.html
vendored
2
deps/npm/html/doc/index.html
vendored
@ -162,5 +162,5 @@
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-index — npm@3.9.5</p>
|
||||
<p id="footer">npm-index — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/misc/npm-coding-style.html
vendored
2
deps/npm/html/doc/misc/npm-coding-style.html
vendored
@ -153,5 +153,5 @@ set to anything."</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-coding-style — npm@3.9.5</p>
|
||||
<p id="footer">npm-coding-style — npm@3.10.2</p>
|
||||
|
||||
|
4
deps/npm/html/doc/misc/npm-config.html
vendored
4
deps/npm/html/doc/misc/npm-config.html
vendored
@ -582,7 +582,7 @@ local <code>npm install</code> without any arguments.</li>
|
||||
</ol>
|
||||
<h3 id="progress">progress</h3>
|
||||
<ul>
|
||||
<li>Default: true</li>
|
||||
<li>Default: true, unless TRAVIS or CI env vars set.</li>
|
||||
<li>Type: Boolean</li>
|
||||
</ul>
|
||||
<p>When set to <code>true</code>, npm will display a progress bar during time intensive
|
||||
@ -862,5 +862,5 @@ exit successfully.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-config — npm@3.9.5</p>
|
||||
<p id="footer">npm-config — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/misc/npm-developers.html
vendored
2
deps/npm/html/doc/misc/npm-developers.html
vendored
@ -194,5 +194,5 @@ from a fresh checkout.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-developers — npm@3.9.5</p>
|
||||
<p id="footer">npm-developers — npm@3.10.2</p>
|
||||
|
||||
|
8
deps/npm/html/doc/misc/npm-disputes.html
vendored
8
deps/npm/html/doc/misc/npm-disputes.html
vendored
@ -13,7 +13,7 @@
|
||||
<h2 id="synopsis">SYNOPSIS</h2>
|
||||
<ol>
|
||||
<li>Get the author email with <code>npm owner ls <pkgname></code></li>
|
||||
<li>Email the author, CC <a href="mailto:support@npmjs.com">support@npmjs.com</a></li>
|
||||
<li>Email the author, CC <a href="mailto:support@npmjs.com">support@npmjs.com</a></li>
|
||||
<li>After a few weeks, if there's no resolution, we'll sort it out.</li>
|
||||
</ol>
|
||||
<p>Don't squat on package names. Publish code or move out of the way.</p>
|
||||
@ -51,12 +51,12 @@ Joe's appropriate course of action in each case is the same.</p>
|
||||
owner (Bob).</li>
|
||||
<li>Joe emails Bob, explaining the situation <strong>as respectfully as
|
||||
possible</strong>, and what he would like to do with the module name. He
|
||||
adds the npm support staff <a href="mailto:support@npmjs.com">support@npmjs.com</a> to the CC list of
|
||||
adds the npm support staff <a href="mailto:support@npmjs.com">support@npmjs.com</a> to the CC list of
|
||||
the email. Mention in the email that Bob can run <code>npm owner add
|
||||
joe foo</code> to add Joe as an owner of the <code>foo</code> package.</li>
|
||||
<li>After a reasonable amount of time, if Bob has not responded, or if
|
||||
Bob and Joe can't come to any sort of resolution, email support
|
||||
<a href="mailto:support@npmjs.com">support@npmjs.com</a> and we'll sort it out. ("Reasonable" is
|
||||
<a href="mailto:support@npmjs.com">support@npmjs.com</a> and we'll sort it out. ("Reasonable" is
|
||||
usually at least 4 weeks, but extra time is allowed around common
|
||||
holidays.)</li>
|
||||
</ol>
|
||||
@ -112,5 +112,5 @@ things into it.</li>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-disputes — npm@3.9.5</p>
|
||||
<p id="footer">npm-disputes — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/misc/npm-index.html
vendored
2
deps/npm/html/doc/misc/npm-index.html
vendored
@ -162,4 +162,4 @@
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-index — npm@3.9.5</p>
|
||||
<p id="footer">npm-index — npm@3.10.2</p>
|
||||
|
2
deps/npm/html/doc/misc/npm-orgs.html
vendored
2
deps/npm/html/doc/misc/npm-orgs.html
vendored
@ -86,4 +86,4 @@
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-orgs — npm@3.9.5</p>
|
||||
<p id="footer">npm-orgs — npm@3.10.2</p>
|
||||
|
2
deps/npm/html/doc/misc/npm-registry.html
vendored
2
deps/npm/html/doc/misc/npm-registry.html
vendored
@ -70,5 +70,5 @@ effectively implement the entire CouchDB API anyway.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-registry — npm@3.9.5</p>
|
||||
<p id="footer">npm-registry — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/misc/npm-scope.html
vendored
2
deps/npm/html/doc/misc/npm-scope.html
vendored
@ -91,5 +91,5 @@ that registry instead.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-scope — npm@3.9.5</p>
|
||||
<p id="footer">npm-scope — npm@3.10.2</p>
|
||||
|
||||
|
7
deps/npm/html/doc/misc/npm-scripts.html
vendored
7
deps/npm/html/doc/misc/npm-scripts.html
vendored
@ -40,11 +40,14 @@ Run by the <code>npm start</code> command.</li>
|
||||
<li>prerestart, restart, postrestart:
|
||||
Run by the <code>npm restart</code> command. Note: <code>npm restart</code> will run the
|
||||
stop and start scripts if no <code>restart</code> script is provided.</li>
|
||||
<li>preshrinkwrap, shrinkwrap, postshrinkwrap:
|
||||
Run by the <code>npm shrinkwrap</code> command.</li>
|
||||
</ul>
|
||||
<p>Additionally, arbitrary scripts can be executed by running <code>npm
|
||||
run-script <stage></code>. <em>Pre</em> and <em>post</em> commands with matching
|
||||
names will be run for those as well (e.g. <code>premyscript</code>, <code>myscript</code>,
|
||||
<code>postmyscript</code>).</p>
|
||||
<code>postmyscript</code>). Scripts from dependencies can be run with `npm explore</p>
|
||||
<p><pkg> -- npm run <stage>`.</p>
|
||||
<h2 id="common-uses">COMMON USES</h2>
|
||||
<p>If you need to perform operations on your package before it is used, in a way
|
||||
that is not dependent on the operating system or architecture of the
|
||||
@ -208,5 +211,5 @@ scripts is for compilation which must be done on the target architecture.</li>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">npm-scripts — npm@3.9.5</p>
|
||||
<p id="footer">npm-scripts — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/misc/removing-npm.html
vendored
2
deps/npm/html/doc/misc/removing-npm.html
vendored
@ -57,5 +57,5 @@ modules. To track those down, you can do the following:</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">removing-npm — npm@3.9.5</p>
|
||||
<p id="footer">removing-npm — npm@3.10.2</p>
|
||||
|
||||
|
2
deps/npm/html/doc/misc/semver.html
vendored
2
deps/npm/html/doc/misc/semver.html
vendored
@ -302,5 +302,5 @@ range, use the <code>satisfies(version, range)</code> function.</p>
|
||||
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6> </td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)"> </td></tr>
|
||||
<tr><td colspan=5 style="width:50px;height:10px;background:#fff"> </td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4> </td><td style="width:90px;height:10px;background:#fff" colspan=9> </td></tr>
|
||||
</table>
|
||||
<p id="footer">semver — npm@3.9.5</p>
|
||||
<p id="footer">semver — npm@3.10.2</p>
|
||||
|
||||
|
5
deps/npm/lib/access.js
vendored
5
deps/npm/lib/access.js
vendored
@ -5,6 +5,7 @@ var resolve = require('path').resolve
|
||||
var readPackageJson = require('read-package-json')
|
||||
var mapToRegistry = require('./utils/map-to-registry.js')
|
||||
var npm = require('./npm.js')
|
||||
var output = require('./utils/output.js')
|
||||
|
||||
var whoami = require('./whoami')
|
||||
|
||||
@ -62,7 +63,9 @@ function access (args, cb) {
|
||||
params.auth = auth
|
||||
try {
|
||||
return npm.registry.access(cmd, uri, params, function (err, data) {
|
||||
!err && data && console.log(JSON.stringify(data, undefined, 2))
|
||||
if (!err && data) {
|
||||
output(JSON.stringify(data, undefined, 2))
|
||||
}
|
||||
cb(err, data)
|
||||
})
|
||||
} catch (e) {
|
||||
|
19
deps/npm/lib/adduser.js
vendored
19
deps/npm/lib/adduser.js
vendored
@ -4,7 +4,9 @@ var log = require('npmlog')
|
||||
var npm = require('./npm.js')
|
||||
var read = require('read')
|
||||
var userValidate = require('npm-user-validate')
|
||||
var output = require('./utils/output')
|
||||
var usage = require('./utils/usage')
|
||||
var chain = require('slide').chain
|
||||
var crypto
|
||||
|
||||
try {
|
||||
@ -30,15 +32,14 @@ function adduser (args, cb) {
|
||||
e: creds.email || ''
|
||||
}
|
||||
var u = {}
|
||||
var fns = [readUsername, readPassword, readEmail, save]
|
||||
|
||||
loop()
|
||||
function loop (er) {
|
||||
if (er) return cb(er)
|
||||
var fn = fns.shift()
|
||||
if (fn) return fn(c, u, loop)
|
||||
cb()
|
||||
}
|
||||
log.disableProgress()
|
||||
chain([
|
||||
[readUsername, c, u],
|
||||
[readPassword, c, u],
|
||||
[readEmail, c, u],
|
||||
[save, c, u]
|
||||
], cb)
|
||||
}
|
||||
|
||||
function readUsername (c, u, cb) {
|
||||
@ -173,7 +174,7 @@ function save (c, u, cb) {
|
||||
|
||||
log.info('adduser', 'Authorized user %s', u.u)
|
||||
var scopeMessage = scope ? ' to scope ' + scope : ''
|
||||
console.log('Logged in as %s%s on %s.', u.u, scopeMessage, uri)
|
||||
output('Logged in as %s%s on %s.', u.u, scopeMessage, uri)
|
||||
npm.config.save('user', cb)
|
||||
})
|
||||
}
|
||||
|
3
deps/npm/lib/bin.js
vendored
3
deps/npm/lib/bin.js
vendored
@ -2,6 +2,7 @@ module.exports = bin
|
||||
|
||||
var npm = require('./npm.js')
|
||||
var osenv = require('osenv')
|
||||
var output = require('./utils/output.js')
|
||||
|
||||
bin.usage = 'npm bin [--global]'
|
||||
|
||||
@ -13,7 +14,7 @@ function bin (args, silent, cb) {
|
||||
var b = npm.bin
|
||||
var PATH = osenv.path()
|
||||
|
||||
if (!silent) console.log(b)
|
||||
if (!silent) output(b)
|
||||
process.nextTick(cb.bind(this, null, b))
|
||||
|
||||
if (npm.config.get('global') && PATH.indexOf(b) === -1) {
|
||||
|
5
deps/npm/lib/build.js
vendored
5
deps/npm/lib/build.js
vendored
@ -22,6 +22,7 @@ var asyncMap = require('slide').asyncMap
|
||||
var ini = require('ini')
|
||||
var writeFile = require('write-file-atomic')
|
||||
var packageId = require('./utils/package-id.js')
|
||||
var output = require('./utils/output.js')
|
||||
|
||||
module.exports = build
|
||||
build.usage = 'npm build [<folder>]'
|
||||
@ -211,9 +212,7 @@ function linkBins (pkg, folder, parent, gtop, cb) {
|
||||
var out = npm.config.get('parseable')
|
||||
? dest + '::' + src + ':BINFILE'
|
||||
: dest + ' -> ' + src
|
||||
log.clearProgress()
|
||||
console.log(out)
|
||||
log.showProgress()
|
||||
output(out)
|
||||
cb()
|
||||
})
|
||||
}
|
||||
|
3
deps/npm/lib/cache.js
vendored
3
deps/npm/lib/cache.js
vendored
@ -82,6 +82,7 @@ var npa = require('npm-package-arg')
|
||||
var getStat = require('./cache/get-stat.js')
|
||||
var cachedPackageRoot = require('./cache/cached-package-root.js')
|
||||
var mapToRegistry = require('./utils/map-to-registry.js')
|
||||
var output = require('./utils/output.js')
|
||||
|
||||
cache.usage = 'npm cache add <tarball file>' +
|
||||
'\nnpm cache add <folder>' +
|
||||
@ -182,7 +183,7 @@ function ls (args, cb) {
|
||||
prefix = '~' + prefix.substr(process.env.HOME.length)
|
||||
}
|
||||
ls_(normalize(args), npm.config.get('depth'), function (er, files) {
|
||||
console.log(files.map(function (f) {
|
||||
output(files.map(function (f) {
|
||||
return path.join(prefix, f)
|
||||
}).join('\n').trim())
|
||||
cb(er, files)
|
||||
|
3
deps/npm/lib/completion.js
vendored
3
deps/npm/lib/completion.js
vendored
@ -14,6 +14,7 @@ var shorthandNames = Object.keys(shorthands)
|
||||
var allConfs = configNames.concat(shorthandNames)
|
||||
var once = require('once')
|
||||
var isWindowsShell = require('./utils/is-windows-shell.js')
|
||||
var output = require('./utils/output.js')
|
||||
|
||||
completion.completion = function (opts, cb) {
|
||||
if (opts.w > 3) return cb()
|
||||
@ -203,7 +204,7 @@ function wrapCb (cb, opts) {
|
||||
console.error([er && er.stack, compls, opts.partialWord])
|
||||
if (er || compls.length === 0) return cb(er)
|
||||
|
||||
console.log(compls.join('\n'))
|
||||
output(compls.join('\n'))
|
||||
cb()
|
||||
}
|
||||
}
|
||||
|
7
deps/npm/lib/config.js
vendored
7
deps/npm/lib/config.js
vendored
@ -11,6 +11,7 @@ var editor = require('editor')
|
||||
var os = require('os')
|
||||
var umask = require('./utils/umask')
|
||||
var usage = require('./utils/usage')
|
||||
var output = require('./utils/output')
|
||||
|
||||
config.usage = usage(
|
||||
'config',
|
||||
@ -148,7 +149,7 @@ function get (key, cb) {
|
||||
}
|
||||
var val = npm.config.get(key)
|
||||
if (key.match(/umask/)) val = umask.toString(val)
|
||||
console.log(val)
|
||||
output(val)
|
||||
cb()
|
||||
}
|
||||
|
||||
@ -278,7 +279,7 @@ function list (cb) {
|
||||
'; HOME = ' + process.env.HOME + '\n' +
|
||||
'; "npm config ls -l" to show all defaults.\n'
|
||||
|
||||
console.log(msg)
|
||||
output(msg)
|
||||
return cb()
|
||||
}
|
||||
|
||||
@ -294,7 +295,7 @@ function list (cb) {
|
||||
})
|
||||
msg += '\n'
|
||||
|
||||
console.log(msg)
|
||||
output(msg)
|
||||
return cb()
|
||||
}
|
||||
|
||||
|
7
deps/npm/lib/dist-tag.js
vendored
7
deps/npm/lib/dist-tag.js
vendored
@ -8,6 +8,7 @@ var npm = require('./npm.js')
|
||||
var mapToRegistry = require('./utils/map-to-registry.js')
|
||||
var readLocalPkg = require('./utils/read-local-package.js')
|
||||
var usage = require('./utils/usage')
|
||||
var output = require('./utils/output.js')
|
||||
|
||||
distTag.usage = usage(
|
||||
'dist-tag',
|
||||
@ -77,7 +78,7 @@ function add (spec, tag, cb) {
|
||||
npm.registry.distTags.add(base, params, function (er) {
|
||||
if (er) return cb(er)
|
||||
|
||||
console.log('+' + t + ': ' + pkg + '@' + version)
|
||||
output('+' + t + ': ' + pkg + '@' + version)
|
||||
cb()
|
||||
})
|
||||
})
|
||||
@ -108,7 +109,7 @@ function remove (tag, pkg, cb) {
|
||||
npm.registry.distTags.rm(base, params, function (er) {
|
||||
if (er) return cb(er)
|
||||
|
||||
console.log('-' + tag + ': ' + pkg + '@' + version)
|
||||
output('-' + tag + ': ' + pkg + '@' + version)
|
||||
cb()
|
||||
})
|
||||
})
|
||||
@ -132,7 +133,7 @@ function list (pkg, cb) {
|
||||
var msg = Object.keys(tags).map(function (k) {
|
||||
return k + ': ' + tags[k]
|
||||
}).sort().join('\n')
|
||||
console.log(msg)
|
||||
output(msg)
|
||||
cb(er, tags)
|
||||
})
|
||||
}
|
||||
|
3
deps/npm/lib/explore.js
vendored
3
deps/npm/lib/explore.js
vendored
@ -12,6 +12,7 @@ var fs = require('graceful-fs')
|
||||
var isWindowsShell = require('./utils/is-windows-shell.js')
|
||||
var escapeExecPath = require('./utils/escape-exec-path.js')
|
||||
var escapeArg = require('./utils/escape-arg.js')
|
||||
var output = require('./utils/output.js')
|
||||
|
||||
function explore (args, cb) {
|
||||
if (args.length < 1 || !args[0]) return cb(explore.usage)
|
||||
@ -42,7 +43,7 @@ function explore (args, cb) {
|
||||
}
|
||||
|
||||
if (!shellArgs.length) {
|
||||
console.log(
|
||||
output(
|
||||
'\nExploring ' + cwd + '\n' +
|
||||
"Type 'exit' or ^D when finished\n"
|
||||
)
|
||||
|
5
deps/npm/lib/help-search.js
vendored
5
deps/npm/lib/help-search.js
vendored
@ -7,6 +7,7 @@ var asyncMap = require('slide').asyncMap
|
||||
var npm = require('./npm.js')
|
||||
var glob = require('glob')
|
||||
var color = require('ansicolors')
|
||||
var output = require('./utils/output.js')
|
||||
|
||||
helpSearch.usage = 'npm help-search <text>'
|
||||
|
||||
@ -135,7 +136,7 @@ function searchFiles (args, files, cb) {
|
||||
}
|
||||
|
||||
if (results.length === 0) {
|
||||
console.log('No results for ' + args.map(JSON.stringify).join(' '))
|
||||
output('No results for ' + args.map(JSON.stringify).join(' '))
|
||||
return cb()
|
||||
}
|
||||
|
||||
@ -206,6 +207,6 @@ function formatResults (args, results, cb) {
|
||||
'(run with -l or --long to see more context)'
|
||||
}
|
||||
|
||||
console.log(out.trim())
|
||||
output(out.trim())
|
||||
cb(null, results)
|
||||
}
|
||||
|
5
deps/npm/lib/help.js
vendored
5
deps/npm/lib/help.js
vendored
@ -15,6 +15,7 @@ var glob = require('glob')
|
||||
var cmdList = require('./config/cmd-list').cmdList
|
||||
var shorthands = require('./config/cmd-list').shorthands
|
||||
var commands = cmdList.concat(Object.keys(shorthands))
|
||||
var output = require('./utils/output.js')
|
||||
|
||||
function help (args, cb) {
|
||||
var argv = npm.config.get('argv').cooked
|
||||
@ -43,7 +44,7 @@ function help (args, cb) {
|
||||
npm.commands[section].usage) {
|
||||
npm.config.set('loglevel', 'silent')
|
||||
log.level = 'silent'
|
||||
console.log(npm.commands[section].usage)
|
||||
output(npm.commands[section].usage)
|
||||
return cb()
|
||||
}
|
||||
|
||||
@ -161,7 +162,7 @@ function htmlMan (man) {
|
||||
function npmUsage (valid, cb) {
|
||||
npm.config.set('loglevel', 'silent')
|
||||
log.level = 'silent'
|
||||
console.log([
|
||||
output([
|
||||
'\nUsage: npm <command>',
|
||||
'',
|
||||
'where <command> is one of:',
|
||||
|
4
deps/npm/lib/init.js
vendored
4
deps/npm/lib/init.js
vendored
@ -5,15 +5,17 @@ module.exports = init
|
||||
var log = require('npmlog')
|
||||
var npm = require('./npm.js')
|
||||
var initJson = require('init-package-json')
|
||||
var output = require('./utils/output.js')
|
||||
|
||||
init.usage = 'npm init [--force|-f|--yes|-y]'
|
||||
|
||||
function init (args, cb) {
|
||||
var dir = process.cwd()
|
||||
log.pause()
|
||||
log.disableProgress()
|
||||
var initFile = npm.config.get('init-module')
|
||||
if (!initJson.yes(npm.config)) {
|
||||
console.log([
|
||||
output([
|
||||
'This utility will walk you through creating a package.json file.',
|
||||
'It only covers the most common items, and tries to guess sensible defaults.',
|
||||
'',
|
||||
|
37
deps/npm/lib/install.js
vendored
37
deps/npm/lib/install.js
vendored
@ -113,6 +113,7 @@ var lock = locker.lock
|
||||
var unlock = locker.unlock
|
||||
var ls = require('./ls.js')
|
||||
var parseJSON = require('./utils/parse-json.js')
|
||||
var output = require('./utils/output.js')
|
||||
|
||||
// install specific libraries
|
||||
var copyTree = require('./install/copy-tree.js')
|
||||
@ -123,7 +124,6 @@ var loadDevDeps = require('./install/deps.js').loadDevDeps
|
||||
var getAllMetadata = require('./install/deps.js').getAllMetadata
|
||||
var loadRequestedDeps = require('./install/deps.js').loadRequestedDeps
|
||||
var loadExtraneous = require('./install/deps.js').loadExtraneous
|
||||
var pruneTree = require('./install/prune-tree.js')
|
||||
var diffTrees = require('./install/diff-trees.js')
|
||||
var checkPermissions = require('./install/check-permissions.js')
|
||||
var decomposeActions = require('./install/decompose-actions.js')
|
||||
@ -136,9 +136,11 @@ var doSerialActions = require('./install/actions.js').doSerial
|
||||
var doReverseSerialActions = require('./install/actions.js').doReverseSerial
|
||||
var doParallelActions = require('./install/actions.js').doParallel
|
||||
var doOneAction = require('./install/actions.js').doOne
|
||||
var removeObsoleteDep = require('./install/deps.js').removeObsoleteDep
|
||||
var packageId = require('./utils/package-id.js')
|
||||
var moduleName = require('./utils/module-name.js')
|
||||
var errorMessage = require('./utils/error-message.js')
|
||||
var andIgnoreErrors = require('./install/and-ignore-errors.js')
|
||||
|
||||
function unlockCB (lockPath, name, cb) {
|
||||
validate('SSF', arguments)
|
||||
@ -363,9 +365,8 @@ Installer.prototype.loadIdealTree = function (cb) {
|
||||
[this, this.loadAllDepsIntoIdealTree],
|
||||
[this, this.finishTracker, 'loadAllDepsIntoIdealTree'],
|
||||
|
||||
[this, function (next) { recalculateMetadata(this.idealTree, log, next) }],
|
||||
[this, this.debugTree, 'idealTree:prePrune', 'idealTree'],
|
||||
[this, function (next) { next(pruneTree(this.idealTree)) }]
|
||||
// TODO: Remove this (should no longer be necessary, instead counter productive)
|
||||
[this, function (next) { recalculateMetadata(this.idealTree, log, next) }]
|
||||
], cb)
|
||||
}
|
||||
|
||||
@ -419,21 +420,18 @@ Installer.prototype.computeLinked = function (cb) {
|
||||
var cmd = action[0]
|
||||
var pkg = action[1]
|
||||
if (cmd !== 'add' && cmd !== 'update') return next()
|
||||
var isReqByTop = pkg.package._requiredBy.filter(function (name) { return name === '/' }).length
|
||||
var isReqByUser = pkg.package._requiredBy.filter(function (name) { return name === '#USER' }).length
|
||||
var isExtraneous = pkg.package._requiredBy.length === 0
|
||||
var isReqByTop = pkg.requiredBy.filter(function (mod) { return mod.isTop }).length
|
||||
var isReqByUser = pkg.userRequired
|
||||
var isExtraneous = pkg.requiredBy.length === 0
|
||||
if (!isReqByTop && !isReqByUser && !isExtraneous) return next()
|
||||
isLinkable(pkg, function (install, link) {
|
||||
if (install) linkTodoList.push(['global-install', pkg])
|
||||
if (link) linkTodoList.push(['global-link', pkg])
|
||||
if (install || link) {
|
||||
pkg.parent.children = pkg.parent.children.filter(function (child) { return child !== pkg })
|
||||
}
|
||||
if (install || link) removeObsoleteDep(pkg)
|
||||
next()
|
||||
})
|
||||
}, function () {
|
||||
if (linkTodoList.length === 0) return cb()
|
||||
pruneTree(self.idealTree)
|
||||
self.differences.length = 0
|
||||
Array.prototype.push.apply(self.differences, linkTodoList)
|
||||
diffTrees(self.currentTree, self.idealTree, self.differences, log.newGroup('d2'), cb)
|
||||
@ -633,8 +631,8 @@ Installer.prototype.normalizeTree = function (log, cb) {
|
||||
log.silly('install', 'normalizeTree')
|
||||
recalculateMetadata(this.currentTree, log, iferr(cb, function (tree) {
|
||||
tree.children.forEach(function (child) {
|
||||
if (child.package._requiredBy.length === 0) {
|
||||
child.package._requiredBy.push('#EXISTING')
|
||||
if (child.requiredBy.length === 0) {
|
||||
child.existing = true
|
||||
}
|
||||
})
|
||||
cb(null, tree)
|
||||
@ -655,17 +653,16 @@ Installer.prototype.printInstalled = function (cb) {
|
||||
validate('F', arguments)
|
||||
log.silly('install', 'printInstalled')
|
||||
var self = this
|
||||
log.clearProgress()
|
||||
this.differences.forEach(function (action) {
|
||||
var mutation = action[0]
|
||||
var child = action[1]
|
||||
var name = packageId(child)
|
||||
var where = path.relative(self.where, child.path)
|
||||
if (mutation === 'remove') {
|
||||
console.log('- ' + name + ' ' + where)
|
||||
output('- ' + name + ' ' + where)
|
||||
} else if (mutation === 'move') {
|
||||
var oldWhere = path.relative(self.where, child.fromPath)
|
||||
console.log(name + ' ' + oldWhere + ' -> ' + where)
|
||||
output(name + ' ' + oldWhere + ' -> ' + where)
|
||||
}
|
||||
})
|
||||
var addedOrMoved = this.differences.filter(function (action) {
|
||||
@ -676,10 +673,9 @@ Installer.prototype.printInstalled = function (cb) {
|
||||
var child = action[1]
|
||||
return child.path
|
||||
})
|
||||
log.showProgress()
|
||||
if (!addedOrMoved.length) return cb()
|
||||
// TODO: remove the recalculateMetadata, should not be needed
|
||||
recalculateMetadata(this.idealTree, log, iferr(cb, function (tree) {
|
||||
log.clearProgress()
|
||||
// These options control both how installs happen AND how `ls` shows output.
|
||||
// Something like `npm install --production` only installs production deps.
|
||||
// By contrast `npm install --production foo` installs `foo` and the
|
||||
@ -691,10 +687,7 @@ Installer.prototype.printInstalled = function (cb) {
|
||||
npm.config.set('dev', false)
|
||||
npm.config.set('only', '')
|
||||
npm.config.set('also', '')
|
||||
ls.fromTree(self.where, tree, addedOrMoved, false, function () {
|
||||
log.showProgress()
|
||||
cb()
|
||||
})
|
||||
ls.fromTree(self.where, tree, addedOrMoved, false, andIgnoreErrors(cb))
|
||||
}))
|
||||
}
|
||||
|
||||
|
2
deps/npm/lib/install/actions.js
vendored
2
deps/npm/lib/install/actions.js
vendored
@ -63,7 +63,7 @@ function andHandleOptionalDepErrors (pkg, next) {
|
||||
return function (er) {
|
||||
if (!er) return next.apply(null, arguments)
|
||||
markAsFailed(pkg)
|
||||
var anyFatal = pkg.userRequired || !pkg.parent
|
||||
var anyFatal = pkg.userRequired || pkg.isTop
|
||||
for (var ii = 0; ii < pkg.requiredBy.length; ++ii) {
|
||||
var parent = pkg.requiredBy[ii]
|
||||
var isFatal = failedDependency(parent, pkg)
|
||||
|
134
deps/npm/lib/install/deps.js
vendored
134
deps/npm/lib/install/deps.js
vendored
@ -10,6 +10,7 @@ var iferr = require('iferr')
|
||||
var npa = require('npm-package-arg')
|
||||
var validate = require('aproba')
|
||||
var realizePackageSpecifier = require('realize-package-specifier')
|
||||
var asap = require('asap')
|
||||
var dezalgo = require('dezalgo')
|
||||
var fetchPackageMetadata = require('../fetch-package-metadata.js')
|
||||
var andAddParentToErrors = require('./and-add-parent-to-errors.js')
|
||||
@ -78,15 +79,17 @@ function doesChildVersionMatch (child, requested, requestor) {
|
||||
return semver.satisfies(child.package.version, requested.spec)
|
||||
}
|
||||
|
||||
// TODO: Rename to maybe computeMetadata or computeRelationships
|
||||
exports.recalculateMetadata = function (tree, log, next) {
|
||||
recalculateMetadata(tree, log, {}, next)
|
||||
}
|
||||
|
||||
exports._childDependencySpecifier = childDependencySpecifier
|
||||
function childDependencySpecifier (tree, name, spec, cb) {
|
||||
if (!tree.resolved) tree.resolved = {}
|
||||
if (!tree.resolved[name]) tree.resolved[name] = {}
|
||||
if (tree.resolved[name][spec]) {
|
||||
return process.nextTick(function () {
|
||||
return asap(function () {
|
||||
cb(null, tree.resolved[name][spec])
|
||||
})
|
||||
}
|
||||
@ -101,19 +104,24 @@ function recalculateMetadata (tree, log, seen, next) {
|
||||
validate('OOOF', arguments)
|
||||
if (seen[tree.path]) return next()
|
||||
seen[tree.path] = true
|
||||
if (tree.parent == null) resetMetadata(tree)
|
||||
function markDeps (spec, done) {
|
||||
validate('SF', arguments)
|
||||
var matched = spec.match(/^(@?[^@]+)@(.*)$/)
|
||||
childDependencySpecifier(tree, matched[1], matched[2], function (er, req) {
|
||||
if (tree.parent == null) {
|
||||
resetMetadata(tree)
|
||||
tree.isTop = true
|
||||
}
|
||||
|
||||
function markDeps (toMark, done) {
|
||||
var name = toMark.name
|
||||
var spec = toMark.spec
|
||||
var kind = toMark.kind
|
||||
childDependencySpecifier(tree, name, spec, function (er, req) {
|
||||
if (er || !req.name) return done()
|
||||
var child = findRequirement(tree, req.name, req)
|
||||
if (child) {
|
||||
resolveWithExistingModule(child, tree, log, andIgnoreErrors(done))
|
||||
} else if (tree.package.dependencies[req.name] != null) {
|
||||
} else if (kind === 'dep') {
|
||||
tree.missingDeps[req.name] = req.rawSpec
|
||||
done()
|
||||
} else if (tree.package.devDependencies[req.name] != null) {
|
||||
} else if (kind === 'dev') {
|
||||
tree.missingDevDeps[req.name] = req.rawSpec
|
||||
done()
|
||||
} else {
|
||||
@ -121,15 +129,16 @@ function recalculateMetadata (tree, log, seen, next) {
|
||||
}
|
||||
})
|
||||
}
|
||||
function specs (deps) {
|
||||
return Object.keys(deps).map(function (depname) { return depname + '@' + deps[depname] })
|
||||
|
||||
function makeMarkable (deps, kind) {
|
||||
if (!deps) return []
|
||||
return Object.keys(deps).map(function (depname) { return { name: depname, spec: deps[depname], kind: kind } })
|
||||
}
|
||||
|
||||
// Ensure dependencies and dev dependencies are marked as required
|
||||
var tomark = specs(tree.package.dependencies)
|
||||
if (!tree.parent && (npm.config.get('dev') || !npm.config.get('production'))) {
|
||||
tomark = union(tomark, specs(tree.package.devDependencies))
|
||||
}
|
||||
var tomark = makeMarkable(tree.package.dependencies, 'dep')
|
||||
if (tree.isTop) tomark = union(tomark, makeMarkable(tree.package.devDependencies, 'dev'))
|
||||
|
||||
// Ensure any children ONLY from a shrinkwrap are also included
|
||||
var childrenOnlyInShrinkwrap = tree.children.filter(function (child) {
|
||||
return child.fromShrinkwrap &&
|
||||
@ -137,7 +146,13 @@ function recalculateMetadata (tree, log, seen, next) {
|
||||
!tree.package.devDependencies[child.package.name]
|
||||
})
|
||||
var tomarkOnlyInShrinkwrap = childrenOnlyInShrinkwrap.map(function (child) {
|
||||
return child.package._spec
|
||||
var name = child.package.name
|
||||
var matched = child.package._spec.match(/^@?[^@]+@(.*)$/)
|
||||
var spec = matched ? matched[1] : child.package._spec
|
||||
var kind = tree.package.dependencies[name] ? 'dep'
|
||||
: tree.package.devDependencies[name] ? 'dev'
|
||||
: 'dep'
|
||||
return { name: name, spec: spec, kind: kind }
|
||||
})
|
||||
tomark = union(tomark, tomarkOnlyInShrinkwrap)
|
||||
|
||||
@ -148,9 +163,7 @@ function recalculateMetadata (tree, log, seen, next) {
|
||||
[asyncMap, tomark, markDeps],
|
||||
[asyncMap, tree.children, function (child, done) { recalculateMetadata(child, log, seen, done) }]
|
||||
], function () {
|
||||
tree.userRequired = tree.package._requiredBy.some(function (req) { return req === '#USER' })
|
||||
tree.existing = tree.package._requiredBy.some(function (req) { return req === '#EXISTING' })
|
||||
tree.package._location = flatNameFromTree(tree)
|
||||
tree.location = flatNameFromTree(tree)
|
||||
next(null, tree)
|
||||
})
|
||||
}
|
||||
@ -158,18 +171,23 @@ function recalculateMetadata (tree, log, seen, next) {
|
||||
function addRequiredDep (tree, child, cb) {
|
||||
isDep(tree, child, function (childIsDep, childIsProdDep, childIsDevDep) {
|
||||
if (!childIsDep) return cb(false)
|
||||
var name = childIsProdDep ? flatNameFromTree(tree) : '#DEV:' + flatNameFromTree(tree)
|
||||
replaceModuleName(child.package, '_requiredBy', name)
|
||||
replaceModule(child, 'requiredBy', tree)
|
||||
replaceModule(tree, 'requires', child)
|
||||
replaceModuleByPath(child, 'requiredBy', tree)
|
||||
replaceModuleByName(tree, 'requires', child)
|
||||
if (childIsProdDep && tree.missingDeps) delete tree.missingDeps[moduleName(child)]
|
||||
if (childIsDevDep && tree.missingDevDeps) delete tree.missingDevDeps[moduleName(child)]
|
||||
cb(true)
|
||||
})
|
||||
}
|
||||
|
||||
exports._removeObsoleteDep = removeObsoleteDep
|
||||
exports.removeObsoleteDep = removeObsoleteDep
|
||||
function removeObsoleteDep (child) {
|
||||
if (child.removed) return
|
||||
child.removed = true
|
||||
// remove from physical tree
|
||||
if (child.parent) {
|
||||
child.parent.children = child.parent.children.filter(function (pchild) { return pchild !== child })
|
||||
}
|
||||
// remove from logical tree
|
||||
var requires = child.requires || []
|
||||
requires.forEach(function (requirement) {
|
||||
requirement.requiredBy = requirement.requiredBy.filter(function (reqBy) { return reqBy !== child })
|
||||
@ -243,9 +261,7 @@ exports.loadRequestedDeps = function (args, tree, saveToDependencies, log, next)
|
||||
// won't be when we're done), flag it as "depending" on the user
|
||||
// themselves, so we don't remove it as a dep that no longer exists
|
||||
addRequiredDep(tree, child, function (childIsDep) {
|
||||
if (!childIsDep) {
|
||||
replaceModuleName(child.package, '_requiredBy', '#USER')
|
||||
}
|
||||
if (!childIsDep) child.userRequired = true
|
||||
depLoaded(null, child, tracker)
|
||||
})
|
||||
}))
|
||||
@ -266,13 +282,13 @@ exports.removeDeps = function (args, tree, saveToDependencies, log, next) {
|
||||
validate('AOOF', [args, tree, log, next])
|
||||
args.forEach(function (pkg) {
|
||||
var pkgName = moduleName(pkg)
|
||||
var toRemove = tree.children.filter(moduleNameMatches(pkgName))
|
||||
var pkgToRemove = toRemove[0] || createChild({package: {name: pkgName}})
|
||||
if (saveToDependencies) {
|
||||
var toRemove = tree.children.filter(moduleNameMatches(pkgName))
|
||||
var pkgToRemove = toRemove[0] || createChild({package: {name: pkgName}})
|
||||
replaceModule(tree, 'removed', pkgToRemove)
|
||||
replaceModuleByPath(tree, 'removed', pkgToRemove)
|
||||
pkgToRemove.save = saveToDependencies
|
||||
}
|
||||
tree.children = tree.children.filter(noModuleNameMatches(pkgName))
|
||||
removeObsoleteDep(pkgToRemove)
|
||||
})
|
||||
log.finish()
|
||||
next()
|
||||
@ -313,7 +329,6 @@ var failedDependency = exports.failedDependency = function (tree, name_pkg) {
|
||||
pkg = name_pkg
|
||||
name = moduleName(pkg)
|
||||
}
|
||||
|
||||
tree.children = tree.children.filter(noModuleNameMatches(name))
|
||||
|
||||
if (isDepOptional(tree, name)) {
|
||||
@ -322,10 +337,14 @@ var failedDependency = exports.failedDependency = function (tree, name_pkg) {
|
||||
|
||||
tree.failed = true
|
||||
|
||||
if (!tree.parent) return true
|
||||
if (tree.isTop) return true
|
||||
|
||||
if (tree.userRequired) return true
|
||||
|
||||
removeObsoleteDep(tree)
|
||||
|
||||
if (!tree.requiredBy) return false
|
||||
|
||||
for (var ii = 0; ii < tree.requiredBy.length; ++ii) {
|
||||
var requireParent = tree.requiredBy[ii]
|
||||
if (failedDependency(requireParent, tree.package)) {
|
||||
@ -367,7 +386,7 @@ function andHandleOptionalErrors (log, tree, name, done) {
|
||||
exports.loadDeps = loadDeps
|
||||
function loadDeps (tree, log, next) {
|
||||
validate('OOF', arguments)
|
||||
if (tree.loaded || (tree.parent && tree.parent.failed)) return andFinishTracker.now(log, next)
|
||||
if (tree.loaded || (tree.parent && tree.parent.failed) || tree.removed) return andFinishTracker.now(log, next)
|
||||
if (tree.parent) tree.loaded = true
|
||||
if (!tree.package.dependencies) tree.package.dependencies = {}
|
||||
asyncMap(Object.keys(tree.package.dependencies), function (dep, done) {
|
||||
@ -446,38 +465,44 @@ function resolveWithExistingModule (child, tree, log, next) {
|
||||
var updatePhantomChildren = exports.updatePhantomChildren = function (current, child) {
|
||||
validate('OO', arguments)
|
||||
while (current && current !== child.parent) {
|
||||
// FIXME: phantomChildren doesn't actually belong in the package.json
|
||||
if (!current.package._phantomChildren) current.package._phantomChildren = {}
|
||||
current.package._phantomChildren[moduleName(child)] = child.package.version
|
||||
if (!current.phantomChildren) current.phantomChildren = {}
|
||||
current.phantomChildren[moduleName(child)] = child
|
||||
current = current.parent
|
||||
}
|
||||
}
|
||||
|
||||
function flatNameFromTree (tree) {
|
||||
validate('O', arguments)
|
||||
if (!tree.parent) return '/'
|
||||
if (tree.isTop) return '/'
|
||||
var path = flatNameFromTree(tree.parent)
|
||||
if (path !== '/') path += '/'
|
||||
return flatName(path, tree)
|
||||
}
|
||||
|
||||
exports._replaceModuleName = replaceModuleName
|
||||
function replaceModuleName (obj, key, name) {
|
||||
validate('OSS', arguments)
|
||||
obj[key] = union(obj[key] || [], [name])
|
||||
exports._replaceModuleByPath = replaceModuleByPath
|
||||
function replaceModuleByPath (obj, key, child) {
|
||||
return replaceModule(obj, key, child, function (replacing, child) {
|
||||
return replacing.path === child.path
|
||||
})
|
||||
}
|
||||
|
||||
exports._replaceModule = replaceModule
|
||||
function replaceModule (obj, key, child) {
|
||||
validate('OSO', arguments)
|
||||
exports._replaceModuleByName = replaceModuleByName
|
||||
function replaceModuleByName (obj, key, child) {
|
||||
var childName = moduleName(child)
|
||||
return replaceModule(obj, key, child, function (replacing, child) {
|
||||
return moduleName(replacing) === childName
|
||||
})
|
||||
}
|
||||
|
||||
function replaceModule (obj, key, child, matchBy) {
|
||||
validate('OSOF', arguments)
|
||||
if (!obj[key]) obj[key] = []
|
||||
// we replace children with a new array object instead of mutating it
|
||||
// because mutating it results in weird failure states.
|
||||
// I would very much like to know _why_ this is. =/
|
||||
var children = [].concat(obj[key])
|
||||
var childName = moduleName(child)
|
||||
for (var replaceAt = 0; replaceAt < children.length; ++replaceAt) {
|
||||
if (moduleName(children[replaceAt]) === childName) break
|
||||
if (matchBy(children[replaceAt], child)) break
|
||||
}
|
||||
var replacing = children.splice(replaceAt, 1, child)
|
||||
obj[key] = children
|
||||
@ -514,15 +539,17 @@ function resolveWithNewModule (pkg, tree, log, next) {
|
||||
children: pkg._bundled || [],
|
||||
isLink: tree.isLink
|
||||
})
|
||||
delete pkg._bundled
|
||||
var hasBundled = child.children.length
|
||||
|
||||
var replaced = replaceModule(parent, 'children', child)
|
||||
var replaced = replaceModuleByName(parent, 'children', child)
|
||||
if (replaced) removeObsoleteDep(replaced)
|
||||
addRequiredDep(tree, child, function () {
|
||||
pkg._location = flatNameFromTree(child)
|
||||
child.location = flatNameFromTree(child)
|
||||
|
||||
if (tree.parent && parent !== tree) updatePhantomChildren(tree.parent, child)
|
||||
|
||||
if (pkg._bundled) {
|
||||
if (hasBundled) {
|
||||
inflateBundled(child, child.children)
|
||||
}
|
||||
|
||||
@ -584,7 +611,7 @@ var findRequirement = exports.findRequirement = function (tree, name, requested,
|
||||
if (matches.length) return matches[0]
|
||||
return null
|
||||
}
|
||||
if (!tree.parent) return null
|
||||
if (tree.isTop) return null
|
||||
return findRequirement(tree.parent, name, requested, requestor)
|
||||
}
|
||||
|
||||
@ -618,13 +645,12 @@ var earliestInstallable = exports.earliestInstallable = function (requiredBy, tr
|
||||
return null
|
||||
}
|
||||
|
||||
// FIXME: phantomChildren doesn't actually belong in the package.json
|
||||
if (tree.package._phantomChildren && tree.package._phantomChildren[pkg.name]) return null
|
||||
if (tree.phantomChildren && tree.phantomChildren[pkg.name]) return null
|
||||
|
||||
if (!tree.parent) return tree
|
||||
if (tree.isTop) return tree
|
||||
if (tree.isGlobal) return tree
|
||||
|
||||
if (npm.config.get('global-style') && !tree.parent.parent) return tree
|
||||
if (npm.config.get('global-style') && tree.parent.isTop) return tree
|
||||
if (npm.config.get('legacy-bundling')) return tree
|
||||
|
||||
return (earliestInstallable(requiredBy, tree.parent, pkg) || tree)
|
||||
|
36
deps/npm/lib/install/diff-trees.js
vendored
36
deps/npm/lib/install/diff-trees.js
vendored
@ -59,17 +59,15 @@ function requiredByAllLinked (node) {
|
||||
return node.requiredBy.filter(isLink).length === node.requiredBy.length
|
||||
}
|
||||
|
||||
function isNotReqByTop (req) {
|
||||
return req !== '/' && // '/' is the top level itself
|
||||
req !== '#USER' && // #USER
|
||||
req !== '#EXTRANEOUS'
|
||||
function isNotTopOrExtraneous (node) {
|
||||
return !node.isTop && !node.userRequired && !node.existing
|
||||
}
|
||||
|
||||
var sortActions = module.exports.sortActions = function (differences) {
|
||||
var actions = {}
|
||||
differences.forEach(function (action) {
|
||||
var child = action[1]
|
||||
actions[child.package._location] = action
|
||||
actions[child.location] = action
|
||||
})
|
||||
|
||||
var sorted = []
|
||||
@ -77,14 +75,18 @@ var sortActions = module.exports.sortActions = function (differences) {
|
||||
|
||||
var sortedlocs = Object.keys(actions).sort(sortByLocation)
|
||||
|
||||
// Do top level deps first, this stops the sorting by required order from
|
||||
// unsorting these deps.
|
||||
// We're going to sort the actions taken on top level dependencies first, before
|
||||
// considering the order of transitive deps. Because we're building our list
|
||||
// from the bottom up, this means we will return a list with top level deps LAST.
|
||||
// This is important in terms of keeping installations as consistent as possible
|
||||
// as folks add new dependencies.
|
||||
var toplocs = sortedlocs.filter(function (location) {
|
||||
var mod = actions[location][1]
|
||||
if (!mod.package._requiredBy) return true
|
||||
// If the module is required by ANY non-top level package
|
||||
// then we don't want to include this.
|
||||
return !mod.package._requiredBy.some(isNotReqByTop)
|
||||
if (!mod.requiredBy) return true
|
||||
// If this module is required by any non-top level module
|
||||
// or by any extraneous module, eg user requested or existing
|
||||
// then we don't want to give this priority sorting.
|
||||
return !mod.requiredBy.some(isNotTopOrExtraneous)
|
||||
})
|
||||
|
||||
toplocs.concat(sortedlocs).forEach(function (location) {
|
||||
@ -94,12 +96,16 @@ var sortActions = module.exports.sortActions = function (differences) {
|
||||
function sortByLocation (aa, bb) {
|
||||
return bb.localeCompare(aa)
|
||||
}
|
||||
function sortModuleByLocation (aa, bb) {
|
||||
return sortByLocation(aa && aa.location, bb && bb.location)
|
||||
}
|
||||
function sortByDeps (action) {
|
||||
var mod = action[1]
|
||||
if (added[mod.package._location]) return
|
||||
added[mod.package._location] = action
|
||||
mod.package._requiredBy.sort().forEach(function (location) {
|
||||
if (actions[location]) sortByDeps(actions[location])
|
||||
if (added[mod.location]) return
|
||||
added[mod.location] = action
|
||||
if (!mod.requiredBy) mod.requiredBy = []
|
||||
mod.requiredBy.sort(sortModuleByLocation).forEach(function (mod) {
|
||||
if (actions[mod.location]) sortByDeps(actions[mod.location])
|
||||
})
|
||||
sorted.unshift(action)
|
||||
}
|
||||
|
1
deps/npm/lib/install/inflate-shrinkwrap.js
vendored
1
deps/npm/lib/install/inflate-shrinkwrap.js
vendored
@ -55,6 +55,7 @@ var inflateShrinkwrap = module.exports = function (tree, swdeps, finishInflating
|
||||
})
|
||||
tree.children.push(child)
|
||||
if (pkg._bundled) {
|
||||
delete pkg._bundled
|
||||
inflateBundled(child, child.children)
|
||||
}
|
||||
inflateShrinkwrap(child, sw.dependencies || {}, next)
|
||||
|
25
deps/npm/lib/install/is-dev.js
vendored
25
deps/npm/lib/install/is-dev.js
vendored
@ -1,7 +1,26 @@
|
||||
'use strict'
|
||||
var isDev = exports.isDev = function (node) {
|
||||
return node.package._requiredBy.some(function (req) { return req === '#DEV:/' })
|
||||
var moduleName = require('../utils/module-name.js')
|
||||
|
||||
function andIsDev (name) {
|
||||
return function (req) {
|
||||
return req.package &&
|
||||
req.package.devDependencies &&
|
||||
req.package.devDependencies[name]
|
||||
}
|
||||
}
|
||||
|
||||
exports.isDev = function (node) {
|
||||
return node.requiredBy.some(andIsDev(moduleName(node)))
|
||||
}
|
||||
|
||||
function andIsOnlyDev (name) {
|
||||
var isThisDev = andIsDev(name)
|
||||
return function (req) {
|
||||
return isThisDev(req) &&
|
||||
(!req.package.dependencies || !req.package.dependencies[name])
|
||||
}
|
||||
}
|
||||
|
||||
exports.isOnlyDev = function (node) {
|
||||
return node.package._requiredBy.length === 1 && isDev(node)
|
||||
return node.requiredBy.every(andIsOnlyDev(moduleName(node)))
|
||||
}
|
||||
|
45
deps/npm/lib/install/is-extraneous.js
vendored
45
deps/npm/lib/install/is-extraneous.js
vendored
@ -1,14 +1,37 @@
|
||||
'use strict'
|
||||
var path = require('path')
|
||||
var isDev = require('./is-dev.js').isDev
|
||||
var npm = require('../npm.js')
|
||||
module.exports = isExtraneous
|
||||
|
||||
module.exports = function (tree) {
|
||||
var pkg = tree.package
|
||||
var requiredBy = pkg._requiredBy.filter(function (req) { return req[0] !== '#' })
|
||||
var isTopLevel = tree.parent == null
|
||||
var isChildOfTop = !isTopLevel && tree.parent.parent == null
|
||||
var isTopGlobal = isChildOfTop && tree.parent.path === path.resolve(npm.globalDir, '..')
|
||||
var topHasNoPackageJson = isChildOfTop && tree.parent.error
|
||||
return !isTopLevel && (!isChildOfTop || !topHasNoPackageJson) && !isTopGlobal && requiredBy.length === 0 && !isDev(tree)
|
||||
function isExtraneous (tree) {
|
||||
var result = !isNotExtraneous(tree)
|
||||
return result
|
||||
}
|
||||
|
||||
function isNotRequired (tree) {
|
||||
return tree.requiredBy && tree.requiredBy.length === 0
|
||||
}
|
||||
|
||||
function parentHasNoPjson (tree) {
|
||||
return tree.parent && tree.parent.isTop && tree.parent.error
|
||||
}
|
||||
|
||||
function topHasNoPjson (tree) {
|
||||
var top = tree
|
||||
while (!top.isTop) top = top.parent
|
||||
return top.error
|
||||
}
|
||||
|
||||
function isNotExtraneous (tree, isCycle) {
|
||||
if (!isCycle) isCycle = {}
|
||||
if (tree.isTop || tree.userRequired) {
|
||||
return true
|
||||
} else if (isNotRequired(tree) && parentHasNoPjson(tree)) {
|
||||
return true
|
||||
} else if (isCycle[tree.path]) {
|
||||
return topHasNoPjson(tree)
|
||||
} else {
|
||||
isCycle[tree.path] = true
|
||||
return tree.requiredBy && tree.requiredBy.some(function (node) {
|
||||
return isNotExtraneous(node, Object.create(isCycle))
|
||||
})
|
||||
}
|
||||
}
|
||||
|
71
deps/npm/lib/install/mutate-into-logical-tree.js
vendored
71
deps/npm/lib/install/mutate-into-logical-tree.js
vendored
@ -8,6 +8,24 @@ var validateAllPeerDeps = require('./deps.js').validateAllPeerDeps
|
||||
var packageId = require('../utils/package-id.js')
|
||||
var moduleName = require('../utils/module-name.js')
|
||||
|
||||
// Return true if tree is a part of a cycle that:
|
||||
// A) Never connects to the top of the tree
|
||||
// B) Has not not had a point in the cycle arbitraryly declared its top
|
||||
// yet.
|
||||
function isDisconnectedCycle (tree, seen) {
|
||||
if (!seen) seen = {}
|
||||
if (tree.isTop || tree.cycleTop || tree.requiredBy.length === 0) {
|
||||
return false
|
||||
} else if (seen[tree.path]) {
|
||||
return true
|
||||
} else {
|
||||
seen[tree.path] = true
|
||||
return tree.requiredBy.every(function (node) {
|
||||
return isDisconnectedCycle(node, Object.create(seen))
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
var mutateIntoLogicalTree = module.exports = function (tree) {
|
||||
validate('O', arguments)
|
||||
|
||||
@ -18,35 +36,29 @@ var mutateIntoLogicalTree = module.exports = function (tree) {
|
||||
|
||||
var flat = flattenTree(tree)
|
||||
|
||||
function getNode (flatname) {
|
||||
return flatname.substr(0, 5) === '#DEV:'
|
||||
? flat[flatname.substr(5)]
|
||||
: flat[flatname]
|
||||
}
|
||||
|
||||
Object.keys(flat).sort().forEach(function (flatname) {
|
||||
var node = flat[flatname]
|
||||
var requiredBy = node.package._requiredBy || []
|
||||
var requiredByNames = requiredBy.filter(function (parentFlatname) {
|
||||
var parentNode = getNode(parentFlatname)
|
||||
if (!parentNode) return false
|
||||
return parentNode.package.dependencies[moduleName(node)] ||
|
||||
(parentNode.package.devDependencies && parentNode.package.devDependencies[moduleName(node)])
|
||||
})
|
||||
requiredBy = requiredByNames.map(getNode)
|
||||
if (!node.requiredBy.length) return
|
||||
|
||||
node.requiredBy = requiredBy
|
||||
if (node.parent) {
|
||||
// If a node is a cycle that never reaches the root of the logical
|
||||
// tree then we'll leave it attached to the root, or else it
|
||||
// would go missing. Further we'll note that this is the node in the
|
||||
// cycle that we picked arbitrarily to be the one attached to the root.
|
||||
// others will fall
|
||||
if (isDisconnectedCycle(node)) {
|
||||
node.cycleTop = true
|
||||
// Nor do we want to disconnect non-cyclical extraneous modules from the tree.
|
||||
} else if (node.requiredBy.length) {
|
||||
// regular deps though, we do, as we're moving them into the capable
|
||||
// hands of the modules that require them.
|
||||
node.parent.children = without(node.parent.children, node)
|
||||
}
|
||||
}
|
||||
|
||||
if (!requiredBy.length) return
|
||||
|
||||
if (node.parent) node.parent.children = without(node.parent.children, node)
|
||||
|
||||
requiredBy.forEach(function (parentNode) {
|
||||
node.requiredBy.forEach(function (parentNode) {
|
||||
parentNode.children = union(parentNode.children, [node])
|
||||
})
|
||||
if (node.package._requiredBy.some(function (nodename) { return nodename[0] === '#' })) {
|
||||
tree.children = union(tree.children, [node])
|
||||
}
|
||||
})
|
||||
return tree
|
||||
}
|
||||
@ -70,18 +82,27 @@ function translateTree_ (tree, seen) {
|
||||
tree.children.forEach(function (child) {
|
||||
pkg.dependencies[moduleName(child)] = translateTree_(child, seen)
|
||||
})
|
||||
Object.keys(tree.missingDeps).forEach(function (name) {
|
||||
|
||||
function markMissing (name, requiredBy) {
|
||||
if (pkg.dependencies[name]) {
|
||||
if (pkg.dependencies[name].missing) return
|
||||
pkg.dependencies[name].invalid = true
|
||||
pkg.dependencies[name].realName = name
|
||||
pkg.dependencies[name].extraneous = false
|
||||
} else {
|
||||
pkg.dependencies[name] = {
|
||||
requiredBy: tree.missingDeps[name],
|
||||
requiredBy: requiredBy,
|
||||
missing: true,
|
||||
optional: !!pkg.optionalDependencies[name]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Object.keys(tree.missingDeps).forEach(function (name) {
|
||||
markMissing(name, tree.missingDeps[name])
|
||||
})
|
||||
Object.keys(tree.missingDevDeps).forEach(function (name) {
|
||||
markMissing(name, tree.missingDevDeps[name])
|
||||
})
|
||||
var checkForMissingPeers = (tree.parent ? [] : [tree]).concat(tree.children)
|
||||
checkForMissingPeers.filter(function (child) {
|
||||
|
27
deps/npm/lib/install/node.js
vendored
27
deps/npm/lib/install/node.js
vendored
@ -2,11 +2,10 @@
|
||||
|
||||
var defaultTemplate = {
|
||||
package: {
|
||||
version: '',
|
||||
dependencies: {},
|
||||
devDependencies: {},
|
||||
optionalDependencies: {},
|
||||
_requiredBy: [],
|
||||
_phantomChildren: {}
|
||||
optionalDependencies: {}
|
||||
},
|
||||
loaded: false,
|
||||
children: [],
|
||||
@ -14,10 +13,13 @@ var defaultTemplate = {
|
||||
requires: [],
|
||||
missingDeps: {},
|
||||
missingDevDeps: {},
|
||||
phantomChildren: {},
|
||||
path: null,
|
||||
realpath: null,
|
||||
location: null,
|
||||
userRequired: false,
|
||||
existing: false
|
||||
existing: false,
|
||||
isTop: false
|
||||
}
|
||||
|
||||
function isLink (node) {
|
||||
@ -34,7 +36,7 @@ var create = exports.create = function (node, template) {
|
||||
if (node[key] != null) return
|
||||
node[key] = template[key]
|
||||
})
|
||||
if (isLink(node) || isLink(node.parent)) {
|
||||
if (isLink(node.parent)) {
|
||||
node.isLink = true
|
||||
}
|
||||
return node
|
||||
@ -48,14 +50,17 @@ function reset (node, seen) {
|
||||
if (seen[node.path]) return
|
||||
seen[node.path] = true
|
||||
var child = create(node)
|
||||
child.package._requiredBy = child.package._requiredBy.filter(function (req) {
|
||||
return req[0] === '#'
|
||||
})
|
||||
child.requiredBy = []
|
||||
child.package._phantomChildren = {}
|
||||
|
||||
// FIXME: cleaning up after read-package-json's mess =(
|
||||
if (child.package._id === '@') delete child.package._id
|
||||
|
||||
child.isTop = false
|
||||
child.requiredBy = []
|
||||
child.requires = []
|
||||
child.missingDeps = {}
|
||||
child.missingDevDeps = {}
|
||||
child.phantomChildren = {}
|
||||
child.location = null
|
||||
|
||||
child.children.forEach(function (child) { reset(child, seen) })
|
||||
if (!child.package.version) child.package.version = ''
|
||||
}
|
||||
|
36
deps/npm/lib/install/prune-tree.js
vendored
36
deps/npm/lib/install/prune-tree.js
vendored
@ -1,36 +0,0 @@
|
||||
'use strict'
|
||||
var validate = require('aproba')
|
||||
var flattenTree = require('./flatten-tree.js')
|
||||
|
||||
function isNotPackage (mod) {
|
||||
return function (parentMod) { return mod !== parentMod }
|
||||
}
|
||||
|
||||
module.exports = function pruneTree (tree) {
|
||||
validate('O', arguments)
|
||||
var flat = flattenTree(tree)
|
||||
// we just do this repeatedly until there are no more orphaned packages
|
||||
// which isn't as effecient as it could be on a REALLY big tree
|
||||
// but we'll face that if it proves to be an issue
|
||||
var removedPackage
|
||||
do {
|
||||
removedPackage = false
|
||||
Object.keys(flat).forEach(function (flatname) {
|
||||
var child = flat[flatname]
|
||||
if (!child.parent) return
|
||||
child.package._requiredBy = (child.package._requiredBy || []).filter(function (req) {
|
||||
var isDev = req.substr(0, 4) === '#DEV'
|
||||
if (req[0] === '#' && !isDev) return true
|
||||
if (flat[req]) return true
|
||||
if (!isDev) return false
|
||||
var reqChildAsDevDep = flat[req.substr(5)]
|
||||
return reqChildAsDevDep && !reqChildAsDevDep.parent
|
||||
})
|
||||
if (!child.package._requiredBy.length) {
|
||||
removedPackage = true
|
||||
delete flat[flatname]
|
||||
child.parent.children = child.parent.children.filter(isNotPackage(child))
|
||||
}
|
||||
})
|
||||
} while (removedPackage)
|
||||
}
|
4
deps/npm/lib/install/save.js
vendored
4
deps/npm/lib/install/save.js
vendored
@ -12,6 +12,7 @@ var npm = require('../npm.js')
|
||||
var deepSortObject = require('../utils/deep-sort-object.js')
|
||||
var parseJSON = require('../utils/parse-json.js')
|
||||
var moduleName = require('../utils/module-name.js')
|
||||
var isOnlyDev = require('./is-dev.js').isOnlyDev
|
||||
|
||||
// if the -S|--save option is specified, then write installed packages
|
||||
// as dependencies to a package.json file.
|
||||
@ -49,8 +50,7 @@ function saveShrinkwrap (tree, next) {
|
||||
|
||||
var shrinkwrap = tree.package._shrinkwrap || {dependencies: {}}
|
||||
var hasDevOnlyDeps = tree.requires.filter(function (dep) {
|
||||
var devReqs = dep.package._requiredBy.filter(function (name) { return name.substr(0, 4) === '#DEV' })
|
||||
return devReqs.length === dep.package._requiredBy.length
|
||||
return isOnlyDev(dep)
|
||||
}).some(function (dep) {
|
||||
return shrinkwrap.dependencies[dep.package.name] != null
|
||||
})
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user