Include NPM, update .pkg to install it.
.msi update coming soon.
This commit is contained in:
parent
05de01d707
commit
b488be127a
6
LICENSE
6
LICENSE
@ -78,3 +78,9 @@ The externally maintained libraries used by Node are:
|
||||
- deps/zlib copyright 1995-2010 Jean-loup Gailly and Mark Adler
|
||||
licensed under a permissive free software license. See
|
||||
deps/zlib/LICENSE.
|
||||
|
||||
- deps/npm NPM is a package manager program copyright 2009, 2010, 2011
|
||||
Isaac Z. Schlueter and licensed under MIT. NPM includes several
|
||||
subpackages MIT or Apache licenses, see deps/npm/LICENSE for more
|
||||
information. NPM is included in the Node .msi and .pkg distributions
|
||||
but not in the Node binary itself.
|
||||
|
15
deps/npm/.gitignore
vendored
Normal file
15
deps/npm/.gitignore
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
*.swp
|
||||
test/bin
|
||||
test/output.log
|
||||
test/packages/*/node_modules
|
||||
test/packages/npm-test-depends-on-spark/which-spark.log
|
||||
test/packages/test-package/random-data.txt
|
||||
test/root
|
||||
node_modules/ronn
|
||||
node_modules/.bin
|
||||
npm-debug.log
|
||||
html/api/*.html
|
||||
html/doc/*.html
|
||||
man/
|
||||
doc/*/index.md
|
||||
./npmrc
|
51
deps/npm/.gitmodules
vendored
Normal file
51
deps/npm/.gitmodules
vendored
Normal file
@ -0,0 +1,51 @@
|
||||
[submodule "node_modules/semver"]
|
||||
path = node_modules/semver
|
||||
url = https://github.com/isaacs/node-semver.git
|
||||
[submodule "node_modules/abbrev"]
|
||||
path = node_modules/abbrev
|
||||
url = https://github.com/isaacs/abbrev-js.git
|
||||
[submodule "node_modules/nopt"]
|
||||
path = node_modules/nopt
|
||||
url = https://github.com/isaacs/nopt.git
|
||||
[submodule "node_modules/node-uuid"]
|
||||
path = node_modules/node-uuid
|
||||
url = https://github.com/broofa/node-uuid
|
||||
[submodule "node_modules/minimatch"]
|
||||
path = node_modules/minimatch
|
||||
url = https://github.com/isaacs/minimatch.git
|
||||
[submodule "node_modules/graceful-fs"]
|
||||
path = node_modules/graceful-fs
|
||||
url = https://github.com/isaacs/node-graceful-fs.git
|
||||
[submodule "node_modules/slide"]
|
||||
path = node_modules/slide
|
||||
url = https://github.com/isaacs/slide-flow-control.git
|
||||
[submodule "node_modules/rimraf"]
|
||||
path = node_modules/rimraf
|
||||
url = https://github.com/isaacs/rimraf.git
|
||||
[submodule "node_modules/proto-list"]
|
||||
path = node_modules/proto-list
|
||||
url = https://github.com/isaacs/proto-list.git
|
||||
[submodule "node_modules/ini"]
|
||||
path = node_modules/ini
|
||||
url = https://github.com/isaacs/ini.git
|
||||
[submodule "node_modules/which"]
|
||||
path = node_modules/which
|
||||
url = https://github.com/isaacs/node-which.git
|
||||
[submodule "node_modules/request"]
|
||||
path = node_modules/request
|
||||
url = https://github.com/isaacs/request.git
|
||||
[submodule "node_modules/tar"]
|
||||
path = node_modules/tar
|
||||
url = git://github.com/isaacs/node-tar.git
|
||||
[submodule "node_modules/fstream"]
|
||||
path = node_modules/fstream
|
||||
url = git://github.com/isaacs/fstream.git
|
||||
[submodule "node_modules/inherits"]
|
||||
path = node_modules/inherits
|
||||
url = git://github.com/isaacs/inherits.git
|
||||
[submodule "node_modules/block-stream"]
|
||||
path = node_modules/block-stream
|
||||
url = git://github.com/isaacs/block-stream.git
|
||||
[submodule "node_modules/mkdirp"]
|
||||
path = node_modules/mkdirp
|
||||
url = git://github.com/isaacs/node-mkdirp.git
|
11
deps/npm/.npmignore
vendored
Normal file
11
deps/npm/.npmignore
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
*.swp
|
||||
test/bin
|
||||
test/output.log
|
||||
test/packages/*/node_modules
|
||||
test/packages/npm-test-depends-on-spark/which-spark.log
|
||||
test/packages/test-package/random-data.txt
|
||||
test/root
|
||||
node_modules/ronn
|
||||
node_modules/.bin
|
||||
npm-debug.log
|
||||
./npmrc
|
50
deps/npm/AUTHORS
vendored
Normal file
50
deps/npm/AUTHORS
vendored
Normal file
@ -0,0 +1,50 @@
|
||||
# Authors sorted by whether or not they're me
|
||||
Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)
|
||||
Steve Steiner <ssteinerX@gmail.com> (http://websaucesoftware.com/blog/)
|
||||
Mikeal Rogers <mikeal.rogers@gmail.com> (http://www.mikealrogers.com/)
|
||||
Aaron Blohowiak <aaron.blohowiak@gmail.com> (http://aaronblohowiak.com/)
|
||||
Martyn Smith <martyn@dollyfish.net.nz> (http://dollyfish.net.nz/)
|
||||
Mathias Pettersson <mape@mape.me> (http://mape.me/)
|
||||
Brian Hammond <brian@fictorial.com> (http://fictorial.com/)
|
||||
Charlie Robbins <charlie.robbins@gmail.com> (http://www.charlierobbins.com/)
|
||||
Francisco Treacy <francisco.treacy@gmail.com> (http://franciscotreacy.com/)
|
||||
Cliffano Subagio <cliffano@gmail.com> (http://blog.cliffano.com/)
|
||||
Christian Eager <christian.eager@nokia.com> (http://perpenduum.com)
|
||||
Dav Glass <davglass@gmail.com> (http://blog.davglass.com)
|
||||
Alex K. Wolfe <alexkwolfe@gmail.com>
|
||||
James Sanders <jimmyjazz14@gmail.com> (http://james-sanders.com/)
|
||||
Reid Burke <me@reidburke.com> (http://reidburke.com/)
|
||||
Arlo Breault <arlolra@gmail.com> (http://thoughtherder.com/)
|
||||
Timo Derstappen <teemow@gmail.com> (http://teemow.com)
|
||||
Bradley Meck <bradley.meck@gmail.com>
|
||||
Bart Teeuwisse <bart.teeuwisse@thecodemill.biz> (http://thecodemill.biz/)
|
||||
Ben Noordhuis <info@bnoordhuis.nl> (http://bnoordhuis.nl/)
|
||||
Tor Valamo <tor.valamo@gmail.com> (http://www.magnimedia.no/)
|
||||
Whyme.Lyu <5longluna@gmail.com> (http://whyme.kuantu.com/)
|
||||
Olivier Melcher <olivier.melcher@gmail.com>
|
||||
Tomaž Muraus <kami@k5-storitve.net> (http://www.tomaz-muraus.info)
|
||||
Evan Meagher <evan.meagher@gmail.com> (http://evanmeagher.net/)
|
||||
Orlando Vazquez <ovazquez@gmail.com> (http://2wycked.net/)
|
||||
George Miroshnykov <gmiroshnykov@lohika.com>
|
||||
Geoff Flarity (http://ca.linkedin.com/pub/geoff-flarity/a/536/43a)
|
||||
Pete Kruckenberg <pete@kruckenberg.com>
|
||||
Laurie Harper <laurie@holoweb.net> (http://laurie.holoweb.net/)
|
||||
Chris Wong <chris@chriswongstudio.com>
|
||||
Max Goodman <c@chromacode.com> (http://chromacode.com/)
|
||||
Scott Bronson <brons_github@rinspin.com>
|
||||
Federico Romero <federomero@gmail.com>
|
||||
Visnu Pitiyanuvath <visnupx@gmail.com> (http://visnup.com)
|
||||
Irakli Gozalishvili <rfobic@gmail.com> (http://jeditoolkit.com/)
|
||||
Mark Cahill <mark@tiemonster.info> (http://www.tiemonster.info/)
|
||||
Zearin <zearin@gonk.net>
|
||||
Iain Sproat <iainsproat@gmail.com>
|
||||
Trent Mick <trentm@gmail.com> (http://trentm.com/)
|
||||
Felix Geisendörfer <felix@debuggable.com> (http://www.debuggable.com/)
|
||||
Conny Brunnkvist <cbrunnkvist@gmail.com> (http://twitter.com/connyb)
|
||||
Will Elwood <w.elwood08@gmail.com> (https://github.com/welwood08)
|
||||
Oleg Efimov <efimovov@gmail.com> (http://sannis.ru)
|
||||
Martin Cooper <mfncooper@gmail.com>
|
||||
Jameson Little <t.jameson.little@gmail.com>
|
||||
cspotcode <cspotcode@gmail.com>
|
||||
Maciej Małecki <maciej.malecki@notimplemented.org>
|
||||
Stephen Sugden <glurgle@gmail.com>
|
1
deps/npm/CHANGES
vendored
Symbolic link
1
deps/npm/CHANGES
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
doc/cli/changelog.md
|
61
deps/npm/LICENSE
vendored
Normal file
61
deps/npm/LICENSE
vendored
Normal file
@ -0,0 +1,61 @@
|
||||
Copyright 2009, 2010, 2011 Isaac Z. Schlueter (the "Author")
|
||||
All rights reserved.
|
||||
|
||||
MIT +no-false-attribs License
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without
|
||||
restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
Distributions of all or part of the Software intended to be used
|
||||
by the recipients as they would use the unmodified Software,
|
||||
containing modifications that substantially alter, remove, or
|
||||
disable functionality of the Software, outside of the documented
|
||||
configuration mechanisms provided by the Software, shall be
|
||||
modified such that the Author's bug reporting email addresses and
|
||||
urls are either replaced with the contact information of the
|
||||
parties responsible for the changes, or removed entirely.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
Except where noted, this license applies to any and all software
|
||||
programs and associated documentation files created by the
|
||||
Author, when distributed with the Software.
|
||||
|
||||
"Node.js" and "node" trademark Joyent, Inc. npm is not officially
|
||||
part of the Node.js project, and is neither owned by nor
|
||||
officially affiliated with Joyent, Inc.
|
||||
|
||||
Packages published in the npm registry are not part of npm
|
||||
itself, are the sole property of their respective maintainers,
|
||||
and are not covered by this license.
|
||||
|
||||
"npm Logo" created by Mathias Pettersson and Brian Hammond,
|
||||
used with permission.
|
||||
|
||||
This program includes a BSDTar/LibArchive version 2.8.3-1 binary,
|
||||
originally distributed as part of the MinGW suite, compiled for
|
||||
Win32, according to the terms of the BSD license.
|
||||
See deps/basic-bsdtar-2.8.3-1-ming32-bin/basic-bsdtar.LICENSE.
|
||||
|
||||
This program uses "node-uuid", Copyright (c) 2010 Robert Kieffer,
|
||||
according to the terms of the MIT license.
|
||||
|
||||
This program uses "request", Copyright (c) 2011 Mikeal Rogers,
|
||||
according to the terms of the Apache license.
|
125
deps/npm/Makefile
vendored
Normal file
125
deps/npm/Makefile
vendored
Normal file
@ -0,0 +1,125 @@
|
||||
SHELL = bash
|
||||
|
||||
markdowns = $(shell find doc -name '*.md' | grep -v 'index') README.md
|
||||
|
||||
cli_mandocs = $(shell find doc/cli -name '*.md' \
|
||||
|sed 's|.md|.1|g' \
|
||||
|sed 's|doc/cli/|man/man1/|g' ) \
|
||||
man/man1/README.1 \
|
||||
man/man1/index.1
|
||||
|
||||
api_mandocs = $(shell find doc/api -name '*.md' \
|
||||
|sed 's|.md|.3|g' \
|
||||
|sed 's|doc/api/|man/man3/|g' )
|
||||
|
||||
cli_htmldocs = $(shell find doc/cli -name '*.md' \
|
||||
|grep -v 'index.md' \
|
||||
|sed 's|.md|.html|g' \
|
||||
|sed 's|doc/cli/|html/doc/|g' ) \
|
||||
html/doc/README.html \
|
||||
html/doc/index.html
|
||||
|
||||
api_htmldocs = $(shell find doc/api -name '*.md' \
|
||||
|sed 's|.md|.html|g' \
|
||||
|sed 's|doc/api/|html/api/|g' )
|
||||
|
||||
mandocs = $(api_mandocs) $(cli_mandocs)
|
||||
|
||||
htmldocs = $(api_htmldocs) $(cli_htmldocs)
|
||||
|
||||
all: submodules doc
|
||||
|
||||
submodules:
|
||||
! [ -d .git ] || git submodule update --init --recursive
|
||||
|
||||
latest: submodules
|
||||
@echo "Installing latest published npm"
|
||||
@echo "Use 'make install' or 'make link' to install the code"
|
||||
@echo "in this folder that you're looking at right now."
|
||||
node cli.js install -g -f npm
|
||||
|
||||
install: all
|
||||
node cli.js install -g -f
|
||||
|
||||
# backwards compat
|
||||
dev: install
|
||||
|
||||
link: uninstall
|
||||
node cli.js link -f
|
||||
|
||||
clean: doc-clean uninstall
|
||||
rm npmrc
|
||||
node cli.js cache clean
|
||||
|
||||
uninstall: submodules
|
||||
node cli.js rm npm -g -f
|
||||
|
||||
doc: $(mandocs) $(htmldocs)
|
||||
|
||||
docclean: doc-clean
|
||||
doc-clean:
|
||||
rm -rf \
|
||||
node_modules/ronn \
|
||||
node_modules/.bin/ronn \
|
||||
.building_ronn \
|
||||
doc/cli/index.md \
|
||||
doc/api/index.md \
|
||||
$(api_mandocs) \
|
||||
$(cli_mandocs) \
|
||||
$(api_htmldocs) \
|
||||
$(cli_htmldocs) \
|
||||
&>/dev/null || true
|
||||
|
||||
# use `npm install ronn` for this to work.
|
||||
man/man1/README.1: README.md scripts/doc-build.sh package.json
|
||||
scripts/doc-build.sh $< $@
|
||||
|
||||
man/man1/%.1: doc/cli/%.md scripts/doc-build.sh package.json
|
||||
@[ -d man/man1 ] || mkdir -p man/man1
|
||||
scripts/doc-build.sh $< $@
|
||||
|
||||
man/man3/%.3: doc/api/%.md scripts/doc-build.sh package.json
|
||||
@[ -d man/man3 ] || mkdir -p man/man3
|
||||
scripts/doc-build.sh $< $@
|
||||
|
||||
html/doc/README.html: README.md html/dochead.html html/docfoot.html scripts/doc-build.sh package.json
|
||||
scripts/doc-build.sh $< $@
|
||||
|
||||
html/doc/%.html: doc/cli/%.md html/dochead.html html/docfoot.html scripts/doc-build.sh package.json
|
||||
scripts/doc-build.sh $< $@
|
||||
|
||||
html/api/%.html: doc/api/%.md html/dochead.html html/docfoot.html scripts/doc-build.sh package.json
|
||||
scripts/doc-build.sh $< $@
|
||||
|
||||
doc/cli/index.md: $(markdowns) scripts/index-build.js scripts/doc-build.sh package.json
|
||||
node scripts/index-build.js > $@
|
||||
|
||||
node_modules/ronn:
|
||||
node cli.js install https://github.com/isaacs/ronnjs/tarball/master
|
||||
|
||||
doc: man
|
||||
|
||||
man: $(cli_docs) $(api_docs)
|
||||
|
||||
test: submodules
|
||||
node cli.js test
|
||||
|
||||
version: link
|
||||
git add package.json &&\
|
||||
git ci -m v$(shell npm -v)
|
||||
|
||||
publish: link
|
||||
git tag -s -m v$(shell npm -v) v$(shell npm -v) &&\
|
||||
git push origin master --tags &&\
|
||||
npm publish &&\
|
||||
make doc-publish
|
||||
|
||||
docpublish: doc-publish
|
||||
doc-publish: doc
|
||||
rsync -vazu --stats --no-implied-dirs --delete html/doc/ npmjs.org:/var/www/npmjs.org/public/doc
|
||||
rsync -vazu --stats --no-implied-dirs --delete html/api/ npmjs.org:/var/www/npmjs.org/public/api
|
||||
|
||||
sandwich:
|
||||
@[ $$(whoami) = "root" ] && (echo "ok"; echo "ham" > sandwich) || echo "make it yourself"
|
||||
|
||||
.PHONY: all latest install dev link doc clean uninstall test man doc-publish doc-clean docclean docpublish
|
274
deps/npm/README.md
vendored
Normal file
274
deps/npm/README.md
vendored
Normal file
@ -0,0 +1,274 @@
|
||||
npm(1) -- node package manager
|
||||
==============================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
This is just enough info to get you up and running.
|
||||
|
||||
Much more info available via `npm help` once it's installed.
|
||||
|
||||
## IMPORTANT
|
||||
|
||||
**You need node v0.4 or higher to run this program.**
|
||||
|
||||
To install an old **and unsupported** version of npm that works on node 0.3
|
||||
and prior, clone the git repo and dig through the old tags and branches.
|
||||
|
||||
## Simple Install (Unix only, sorry)
|
||||
|
||||
To install npm with one command, do this:
|
||||
|
||||
curl http://npmjs.org/install.sh | sh
|
||||
|
||||
To skip the npm 0.x cleanup, do this:
|
||||
|
||||
curl http://npmjs.org/install.sh | clean=no sh
|
||||
|
||||
To say "yes" to the 0.x cleanup, but skip the prompt:
|
||||
|
||||
curl http://npmjs.org/install.sh | clean=yes sh
|
||||
|
||||
If you get permission errors, see the section below, entitled
|
||||
"Permission Errors on Installation".
|
||||
|
||||
## Installing on Windows -- Experimental
|
||||
|
||||
Yes, this sucks. A convenient one-liner is coming soon.
|
||||
|
||||
### Step 1: Drop the node.exe somewhere
|
||||
|
||||
You will probably need the latest version of node, **at least** version
|
||||
`0.5.8` or higher. You can get it from
|
||||
<http://nodejs.org/dist/v0.5.8/node.exe>.
|
||||
|
||||
### Step 2 (optional): Update the %PATH% environment variable
|
||||
|
||||
Update your `%PATH%` environment variable in System Properties:
|
||||
Advanced: Environment, so that it includes the `bin` folder you chose.
|
||||
The entries are separated by semicolons.
|
||||
|
||||
You *may* be able to do this from the command line using `set` and
|
||||
`setx`. `cd` into the `bin` folder you created in step 1, and do this:
|
||||
|
||||
set path=%PATH%;%CD%
|
||||
setx path "%PATH%"
|
||||
|
||||
This will have the added advantage that you'll be able to simply type
|
||||
`npm` or `node` in any project folder to access those commands.
|
||||
|
||||
If you decide not to update the PATH, and put the node.exe file in
|
||||
`C:\node\node.exe`, then the npm executable will end up `C:\node\npm.cmd`,
|
||||
and you'll have to type `C:\node\npm <command>` to use it.
|
||||
|
||||
### Step 3: Install git
|
||||
|
||||
If you don't already have git,
|
||||
[install it](https://git.wiki.kernel.org/index.php/MSysGit:InstallMSysGit).
|
||||
|
||||
Run `git --version` to make sure that it's at least version 1.7.6.
|
||||
|
||||
### Step 4: install npm
|
||||
|
||||
Lastly, **after** node.exe, git, and your %PATH% have *all* been set up
|
||||
properly, install npm itself:
|
||||
|
||||
git config --system http.sslcainfo /bin/curl-ca-bundle.crt
|
||||
git clone --recursive git://github.com/isaacs/npm.git
|
||||
cd npm
|
||||
node cli.js install npm -gf
|
||||
|
||||
## Permission Errors (`EACCES` or `EACCESS`) on Installation
|
||||
|
||||
On Windows, you may need to run the command prompt in elevated
|
||||
permission mode. (Right-click on cmd.exe, Run as Administrator.)
|
||||
|
||||
On Unix, you may need to run as root, or use `sudo`.
|
||||
|
||||
**Note**: You would need to `sudo` the `sh`, **not** the `curl`. Fetching
|
||||
stuff from the internet typically doesn't require elevated permissions.
|
||||
Running it might.
|
||||
|
||||
I highly recommend that you first download the file, and make sure that
|
||||
it is what you expect, and *then* run it.
|
||||
|
||||
curl -O http://npmjs.org/install.sh
|
||||
# inspect file..
|
||||
sudo sh install.sh
|
||||
|
||||
## Installing on Cygwin
|
||||
|
||||
No.
|
||||
|
||||
## Dev Install
|
||||
|
||||
To install the latest **unstable** development version from git:
|
||||
|
||||
git clone https://github.com/isaacs/npm.git
|
||||
cd npm
|
||||
git submodule update --init --recursive
|
||||
sudo make install # (or: `node cli.js install -gf`)
|
||||
|
||||
If you're sitting in the code folder reading this document in your
|
||||
terminal, then you've already got the code. Just do:
|
||||
|
||||
git submodule update --init --recursive
|
||||
sudo make install
|
||||
|
||||
and npm will install itself.
|
||||
|
||||
If you don't have make, and don't have curl or git, and ALL you have is
|
||||
this code and node, you can probably do this:
|
||||
|
||||
git submodule update --init --recursive
|
||||
sudo node ./cli.js install -g
|
||||
|
||||
Note that github tarballs **do not contain submodules**, so
|
||||
those won't work. You'll have to also fetch the appropriate submodules
|
||||
listed in the .gitmodules file.
|
||||
|
||||
## Permissions when Using npm to Install Other Stuff
|
||||
|
||||
**tl;dr**
|
||||
|
||||
* Use `sudo` for greater safety. Or don't, if you prefer not to.
|
||||
* npm will downgrade permissions if it's root before running any build
|
||||
scripts that package authors specified.
|
||||
|
||||
### More details...
|
||||
|
||||
As of version 0.3, it is recommended to run npm as root.
|
||||
This allows npm to change the user identifier to the `nobody` user prior
|
||||
to running any package build or test commands.
|
||||
|
||||
If you are not the root user, or if you are on a platform that does not
|
||||
support uid switching, then npm will not attempt to change the userid.
|
||||
|
||||
If you would like to ensure that npm **always** runs scripts as the
|
||||
"nobody" user, and have it fail if it cannot downgrade permissions, then
|
||||
set the following configuration param:
|
||||
|
||||
npm config set unsafe-perm false
|
||||
|
||||
This will prevent running in unsafe mode, even as non-root users.
|
||||
|
||||
## Uninstalling
|
||||
|
||||
So sad to see you go.
|
||||
|
||||
sudo npm uninstall npm -g
|
||||
|
||||
Or, if that fails,
|
||||
|
||||
sudo make uninstall
|
||||
|
||||
## More Severe Uninstalling
|
||||
|
||||
Usually, the above instructions are sufficient. That will remove
|
||||
npm, but leave behind anything you've installed.
|
||||
|
||||
If you would like to remove all the packages that you have installed,
|
||||
then you can use the `npm ls` command to find them, and then `npm rm` to
|
||||
remove them.
|
||||
|
||||
To remove cruft left behind by npm 0.x, you can use the included
|
||||
`clean-old.sh` script file. You can run it conveniently like this:
|
||||
|
||||
npm explore npm -g -- sh scripts/clean-old.sh
|
||||
|
||||
npm uses two configuration files, one for per-user configs, and another
|
||||
for global (every-user) configs. You can view them by doing:
|
||||
|
||||
npm config get userconfig # defaults to ~/.npmrc
|
||||
npm config get globalconfig # defaults to /usr/local/etc/npmrc
|
||||
|
||||
Uninstalling npm does not remove configuration files by default. You
|
||||
must remove them yourself manually if you want them gone. Note that
|
||||
this means that future npm installs will not remember the settings that
|
||||
you have chosen.
|
||||
|
||||
## Using npm Programmatically
|
||||
|
||||
If you would like to use npm programmatically, you can do that.
|
||||
It's not very well documented, but it *is* rather simple.
|
||||
|
||||
var npm = require("npm")
|
||||
npm.load(myConfigObject, function (er) {
|
||||
if (er) return handlError(er)
|
||||
npm.commands.install(["some", "args"], function (er, data) {
|
||||
if (er) return commandFailed(er)
|
||||
// command succeeded, and data might have some info
|
||||
})
|
||||
npm.on("log", function (message) { .... })
|
||||
})
|
||||
|
||||
The `load` function takes an object hash of the command-line configs.
|
||||
The various `npm.commands.<cmd>` functions take an **array** of
|
||||
positional argument **strings**. The last argument to any
|
||||
`npm.commands.<cmd>` function is a callback. Some commands take other
|
||||
optional arguments. Read the source.
|
||||
|
||||
You cannot set configs individually for any single npm function at this
|
||||
time. Since `npm` is a singleton, any call to `npm.config.set` will
|
||||
change the value for *all* npm commands in that process.
|
||||
|
||||
See `./bin/npm-cli.js` for an example of pulling config values off of the
|
||||
command line arguments using nopt. You may also want to check out `npm
|
||||
help config` to learn about all the options you can set there.
|
||||
|
||||
## More Docs
|
||||
|
||||
Check out the [docs](http://npmjs.org/doc/),
|
||||
especially the
|
||||
[faq](http://npmjs.org/doc/faq.html).
|
||||
|
||||
You can use the `npm help` command to read any of them.
|
||||
|
||||
If you're a developer, and you want to use npm to publish your program,
|
||||
you should
|
||||
[read this](http://npmjs.org/doc/developers.html)
|
||||
|
||||
## Legal Stuff
|
||||
|
||||
"npm" and "the npm registry" are owned by Isaac Z. Schlueter. All
|
||||
rights not explicitly granted in the MIT license are reserved. See the
|
||||
included LICENSE file for more details.
|
||||
|
||||
"Node.js" and "node" are trademarks owned by Joyent, Inc. npm is not
|
||||
officially part of the Node.js project, and is neither owned by nor
|
||||
officially affiliated with Joyent, Inc.
|
||||
|
||||
The packages in the npm registry are not part of npm itself, and are the
|
||||
sole property of their respective maintainers. While every effort is
|
||||
made to ensure accountability, there is absolutely no guarantee,
|
||||
warrantee, or assertion made as to the quality, fitness for a specific
|
||||
purpose, or lack of malice in any given npm package. Modules
|
||||
published on the npm registry are not affiliated with or endorsed by
|
||||
Joyent, Inc., Isaac Z. Schlueter, Ryan Dahl, or the Node.js project.
|
||||
|
||||
If you have a complaint about a package in the npm registry, and cannot
|
||||
resolve it with the package owner, please express your concerns to
|
||||
Isaac Z. Schlueter at <i@izs.me>.
|
||||
|
||||
### In plain english
|
||||
|
||||
This is mine; not my employer's, not Node's, not Joyent's, not Ryan
|
||||
Dahl's.
|
||||
|
||||
If you publish something, it's yours, and you are solely accountable
|
||||
for it. Not me, not Node, not Joyent, not Ryan Dahl.
|
||||
|
||||
If other people publish something, it's theirs. Not mine, not Node's,
|
||||
not Joyent's, not Ryan Dahl's.
|
||||
|
||||
Yes, you can publish something evil. It will be removed promptly if
|
||||
reported, and we'll lose respect for you. But there is no vetting
|
||||
process for published modules.
|
||||
|
||||
If this concerns you, inspect the source before using packages.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm(1)
|
||||
* npm-faq(1)
|
||||
* npm-help(1)
|
||||
* npm-index(1)
|
77
deps/npm/bin/npm-cli.js
vendored
Executable file
77
deps/npm/bin/npm-cli.js
vendored
Executable file
@ -0,0 +1,77 @@
|
||||
#!/usr/bin/env node
|
||||
;(function () { // wrapper in case we're in module_context mode
|
||||
|
||||
// windows: running "npm blah" in this folder will invoke WSH, not node.
|
||||
if (typeof WScript !== "undefined") {
|
||||
WScript.echo("npm does not work when run\n"
|
||||
+"with the Windows Scripting Host\n\n"
|
||||
+"'cd' to a different directory,\n"
|
||||
+"or type 'npm.cmd <args>',\n"
|
||||
+"or type 'node npm <args>'.")
|
||||
WScript.quit(1)
|
||||
return
|
||||
}
|
||||
|
||||
var log = require("../lib/utils/log.js")
|
||||
log.waitForConfig()
|
||||
log.info("ok", "it worked if it ends with")
|
||||
|
||||
var fs = require("graceful-fs")
|
||||
, path = require("path")
|
||||
, npm = require("../lib/npm.js")
|
||||
, ini = require("../lib/utils/ini.js")
|
||||
, errorHandler = require("../lib/utils/error-handler.js")
|
||||
|
||||
, configDefs = require("../lib/utils/config-defs.js")
|
||||
, shorthands = configDefs.shorthands
|
||||
, types = configDefs.types
|
||||
, nopt = require("nopt")
|
||||
|
||||
// if npm is called as "npmg" or "npm_g", then
|
||||
// run in global mode.
|
||||
if (path.basename(process.argv[1]).slice(-1) === "g") {
|
||||
process.argv.splice(1, 1, "npm", "-g")
|
||||
}
|
||||
|
||||
log.verbose(process.argv, "cli")
|
||||
|
||||
var conf = nopt(types, shorthands)
|
||||
npm.argv = conf.argv.remain
|
||||
if (npm.deref(npm.argv[0])) npm.command = npm.argv.shift()
|
||||
else conf.usage = true
|
||||
|
||||
|
||||
if (conf.version) {
|
||||
console.log(npm.version)
|
||||
return
|
||||
}
|
||||
|
||||
log.info("npm@"+npm.version, "using")
|
||||
log.info("node@"+process.version, "using")
|
||||
|
||||
// make sure that this version of node works with this version of npm.
|
||||
var semver = require("semver")
|
||||
, nodeVer = process.version
|
||||
, reqVer = npm.nodeVersionRequired
|
||||
if (reqVer && !semver.satisfies(nodeVer, reqVer)) {
|
||||
return errorHandler(new Error(
|
||||
"npm doesn't work with node " + nodeVer
|
||||
+ "\nRequired: node@" + reqVer), true)
|
||||
}
|
||||
|
||||
process.on("uncaughtException", errorHandler)
|
||||
|
||||
if (conf.usage && npm.command !== "help") {
|
||||
npm.argv.unshift(npm.command)
|
||||
npm.command = "help"
|
||||
}
|
||||
|
||||
// now actually fire up npm and run the command.
|
||||
// this is how to use npm programmatically:
|
||||
conf._exit = true
|
||||
npm.load(conf, function (er) {
|
||||
if (er) return errorHandler(er)
|
||||
npm.commands[npm.command](npm.argv, errorHandler)
|
||||
})
|
||||
|
||||
})()
|
6
deps/npm/bin/npm-g.cmd
vendored
Normal file
6
deps/npm/bin/npm-g.cmd
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
:: Created by npm, please don't edit manually.
|
||||
@IF EXIST "%~dp0"\"node.exe" (
|
||||
"%~dp0"\"node.exe" "%~dp0\.\node_modules\npm\bin\npm-cli.js" %*
|
||||
) ELSE (
|
||||
node "%~dp0\.\node_modules\npm\bin\npm-cli.js" %*
|
||||
)
|
16
deps/npm/bin/npm-get-uid-gid.js
vendored
Executable file
16
deps/npm/bin/npm-get-uid-gid.js
vendored
Executable file
@ -0,0 +1,16 @@
|
||||
var argv = process.argv.slice(2)
|
||||
, user = argv[0] || process.getuid()
|
||||
, group = argv[1] || process.getgid()
|
||||
|
||||
if (!isNaN(user)) user = +user
|
||||
if (!isNaN(group)) group = +group
|
||||
|
||||
console.error([user, group])
|
||||
|
||||
try {
|
||||
process.setgid(group)
|
||||
process.setuid(user)
|
||||
console.log(JSON.stringify({uid:+process.getuid(), gid:+process.getgid()}))
|
||||
} catch (ex) {
|
||||
console.log(JSON.stringify({error:ex.message,errno:ex.errno}))
|
||||
}
|
6
deps/npm/bin/npm.cmd
vendored
Normal file
6
deps/npm/bin/npm.cmd
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
:: Created by npm, please don't edit manually.
|
||||
@IF EXIST "%~dp0"\"node.exe" (
|
||||
"%~dp0"\"node.exe" "%~dp0\.\node_modules\npm\bin\npm-cli.js" %*
|
||||
) ELSE (
|
||||
node "%~dp0\.\node_modules\npm\bin\npm-cli.js" %*
|
||||
)
|
6
deps/npm/bin/npm_g.cmd
vendored
Normal file
6
deps/npm/bin/npm_g.cmd
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
:: Created by npm, please don't edit manually.
|
||||
@IF EXIST "%~dp0"\"node.exe" (
|
||||
"%~dp0"\"node.exe" "%~dp0\.\node_modules\npm\bin\npm-cli.js" %*
|
||||
) ELSE (
|
||||
node "%~dp0\.\node_modules\npm\bin\npm-cli.js" %*
|
||||
)
|
22
deps/npm/bin/read-package-json.js
vendored
Executable file
22
deps/npm/bin/read-package-json.js
vendored
Executable file
@ -0,0 +1,22 @@
|
||||
var argv = process.argv
|
||||
if (argv.length < 3) {
|
||||
console.error("Usage: read-package.json <file> [<fields> ...]")
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
var fs = require("fs")
|
||||
, file = argv[2]
|
||||
, readJson = require("../lib/utils/read-json")
|
||||
|
||||
readJson(file, function (er, data) {
|
||||
if (er) throw er
|
||||
if (argv.length === 3) console.log(data)
|
||||
else argv.slice(3).forEach(function (field) {
|
||||
field = field.split(".")
|
||||
var val = data
|
||||
field.forEach(function (f) {
|
||||
val = val[f]
|
||||
})
|
||||
console.log(val)
|
||||
})
|
||||
})
|
2
deps/npm/cli.js
vendored
Executable file
2
deps/npm/cli.js
vendored
Executable file
@ -0,0 +1,2 @@
|
||||
#!/usr/bin/env node
|
||||
require("./bin/npm-cli.js")
|
33
deps/npm/configure
vendored
Executable file
33
deps/npm/configure
vendored
Executable file
@ -0,0 +1,33 @@
|
||||
#!/bin/bash
|
||||
|
||||
# set configurations that will be "sticky" on this system,
|
||||
# surviving npm self-updates.
|
||||
|
||||
CONFIGS=()
|
||||
i=0
|
||||
|
||||
# get the location of this file.
|
||||
unset CDPATH
|
||||
CONFFILE=$(cd $(dirname "$0"); pwd -P)/npmrc
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
conf="$1"
|
||||
case $conf in
|
||||
--help)
|
||||
echo "./configure --param=value ..."
|
||||
exit 0
|
||||
;;
|
||||
--*)
|
||||
CONFIGS[$i]="${conf:2}"
|
||||
;;
|
||||
*)
|
||||
CONFIGS[$i]="$conf"
|
||||
;;
|
||||
esac
|
||||
let i++
|
||||
shift
|
||||
done
|
||||
|
||||
for c in "${CONFIGS[@]}"; do
|
||||
echo "$c" >> "$CONFFILE"
|
||||
done
|
1
deps/npm/doc/api/author.md
vendored
Symbolic link
1
deps/npm/doc/api/author.md
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
owner.md
|
13
deps/npm/doc/api/bin.md
vendored
Normal file
13
deps/npm/doc/api/bin.md
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
npm-bin(3) -- Display npm bin folder
|
||||
====================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.bin(args, cb)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Print the folder where npm will install executables.
|
||||
|
||||
This function should not be used programmatically. Instead, just refer
|
||||
to the `npm.bin` member.
|
19
deps/npm/doc/api/bugs.md
vendored
Normal file
19
deps/npm/doc/api/bugs.md
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
npm-bugs(3) -- Bugs for a package in a web browser maybe
|
||||
========================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.bugs(package, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command tries to guess at the likely location of a package's
|
||||
bug tracker URL, and then tries to open it using the `--browser`
|
||||
config param.
|
||||
|
||||
Like other commands, the first parameter is an array. This command only
|
||||
uses the first element, which is expected to be a package name with an
|
||||
optional version number.
|
||||
|
||||
This command will launch a browser, so this command may not be the most
|
||||
friendly for programmatic use.
|
22
deps/npm/doc/api/commands.md
vendored
Normal file
22
deps/npm/doc/api/commands.md
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
npm-commands(3) -- npm commands
|
||||
===============================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands[<command>](args, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
npm comes with a full set of commands, and each of the commands takes a
|
||||
similar set of arguments.
|
||||
|
||||
In general, all commands on the command object take an **array** of positional
|
||||
argument **strings**. The last argument to any function is a callback. Some
|
||||
commands are special and take other optional arguments.
|
||||
|
||||
All commands have their own man page. See `man npm-<command>` for command-line
|
||||
usage, or `man 3 npm-<command>` for programmatic usage.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-index(1)
|
45
deps/npm/doc/api/config.md
vendored
Normal file
45
deps/npm/doc/api/config.md
vendored
Normal file
@ -0,0 +1,45 @@
|
||||
npm-config(3) -- Manage the npm configuration files
|
||||
===================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.config(args, callback)
|
||||
var val = npm.config.get(key)
|
||||
npm.config.set(key, val)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This function acts much the same way as the command-line version. The first
|
||||
element in the array tells config what to do. Possible values are:
|
||||
|
||||
* `set`
|
||||
|
||||
Sets a config parameter. The second element in `args` is interpreted as the
|
||||
key, and the third element is interpreted as the value.
|
||||
|
||||
* `get`
|
||||
|
||||
Gets the value of a config parameter. The second element in `args` is the
|
||||
key to get the value of.
|
||||
|
||||
* `delete` (`rm` or `del`)
|
||||
|
||||
Deletes a parameter from the config. The second element in `args` is the
|
||||
key to delete.
|
||||
|
||||
* `list` (`ls`)
|
||||
|
||||
Show all configs that aren't secret. No parameters necessary.
|
||||
|
||||
* `edit`:
|
||||
|
||||
Opens the config file in the default editor. This command isn't very useful
|
||||
programmatically, but it is made available.
|
||||
|
||||
To programmatically access npm configuration settings, or set them for
|
||||
the duration of a program, use the `npm.config.set` and `npm.config.get`
|
||||
functions instead.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm(3)
|
32
deps/npm/doc/api/deprecate.md
vendored
Normal file
32
deps/npm/doc/api/deprecate.md
vendored
Normal file
@ -0,0 +1,32 @@
|
||||
npm-deprecate(3) -- Deprecate a version of a package
|
||||
====================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.deprecate(args, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command will update the npm registry entry for a package, providing
|
||||
a deprecation warning to all who attempt to install it.
|
||||
|
||||
The 'args' parameter must have exactly two elements:
|
||||
|
||||
* `package[@version]`
|
||||
|
||||
The `version` portion is optional, and may be either a range, or a
|
||||
specific version, or a tag.
|
||||
|
||||
* `message`
|
||||
|
||||
The warning message that will be printed whenever a user attempts to
|
||||
install the package.
|
||||
|
||||
Note that you must be the package owner to deprecate something. See the
|
||||
`owner` and `adduser` help topics.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-publish(3)
|
||||
* npm-unpublish(3)
|
||||
* npm-registry(1)
|
19
deps/npm/doc/api/docs.md
vendored
Normal file
19
deps/npm/doc/api/docs.md
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
npm-docs(3) -- Docs for a package in a web browser maybe
|
||||
========================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.docs(package, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command tries to guess at the likely location of a package's
|
||||
documentation URL, and then tries to open it using the `--browser`
|
||||
config param.
|
||||
|
||||
Like other commands, the first parameter is an array. This command only
|
||||
uses the first element, which is expected to be a package name with an
|
||||
optional version number.
|
||||
|
||||
This command will launch a browser, so this command may not be the most
|
||||
friendly for programmatic use.
|
24
deps/npm/doc/api/edit.md
vendored
Normal file
24
deps/npm/doc/api/edit.md
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
npm-edit(3) -- Edit an installed package
|
||||
========================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.edit(package, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Opens the package folder in the default editor (or whatever you've
|
||||
configured as the npm `editor` config -- see `npm help config`.)
|
||||
|
||||
After it has been edited, the package is rebuilt so as to pick up any
|
||||
changes in compiled packages.
|
||||
|
||||
For instance, you can do `npm install connect` to install connect
|
||||
into your package, and then `npm.commands.edit(["connect"], callback)`
|
||||
to make a few changes to your locally installed copy.
|
||||
|
||||
The first parameter is a string array with a single element, the package
|
||||
to open. The package can optionally have a version number attached.
|
||||
|
||||
Since this command opens an editor in a new process, be careful about where
|
||||
and how this is used.
|
18
deps/npm/doc/api/explore.md
vendored
Normal file
18
deps/npm/doc/api/explore.md
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
npm-explore(3) -- Browse an installed package
|
||||
=============================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.explore(args, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Spawn a subshell in the directory of the installed package specified.
|
||||
|
||||
If a command is specified, then it is run in the subshell, which then
|
||||
immediately terminates.
|
||||
|
||||
Note that the package is *not* automatically rebuilt afterwards, so be
|
||||
sure to use `npm rebuild <pkg>` if you make any changes.
|
||||
|
||||
The first element in the 'args' parameter must be a package name. After that is the optional command, which can be any number of strings. All of the strings will be combined into one, space-delimited command.
|
1
deps/npm/doc/api/find.md
vendored
Symbolic link
1
deps/npm/doc/api/find.md
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
ls.md
|
1
deps/npm/doc/api/get.md
vendored
Symbolic link
1
deps/npm/doc/api/get.md
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
config.md
|
30
deps/npm/doc/api/help-search.md
vendored
Normal file
30
deps/npm/doc/api/help-search.md
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
npm-help-search(3) -- Search the help pages
|
||||
===========================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.helpSearch(args, [silent,] callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command is rarely useful, but it exists in the rare case that it is.
|
||||
|
||||
This command takes an array of search terms and returns the help pages that
|
||||
match in order of best match.
|
||||
|
||||
If there is only one match, then npm displays that help section. If there
|
||||
are multiple results, the results are printed to the screen formatted and the
|
||||
array of results is returned. Each result is an object with these properties:
|
||||
|
||||
* hits:
|
||||
A map of args to number of hits on that arg. For example, {"npm": 3}
|
||||
* found:
|
||||
Total number of unique args that matched.
|
||||
* totalHits:
|
||||
Total number of hits.
|
||||
* lines:
|
||||
An array of all matching lines (and some adjacent lines).
|
||||
* file:
|
||||
Name of the file that matched
|
||||
|
||||
The silent parameter is not neccessary not used, but it may in the future.
|
1
deps/npm/doc/api/home.md
vendored
Symbolic link
1
deps/npm/doc/api/home.md
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
docs.md
|
29
deps/npm/doc/api/init.md
vendored
Normal file
29
deps/npm/doc/api/init.md
vendored
Normal file
@ -0,0 +1,29 @@
|
||||
npm init(3) -- Interactively create a package.json file
|
||||
=======================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.init(args, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This will ask you a bunch of questions, and then write a package.json for you.
|
||||
|
||||
It attempts to make reasonable guesses about what you want things to be set to,
|
||||
and then writes a package.json file with the options you've selected.
|
||||
|
||||
If you already have a package.json file, it'll read that first, and default to
|
||||
the options in there.
|
||||
|
||||
It is strictly additive, so it does not delete options from your package.json
|
||||
without a really good reason to do so.
|
||||
|
||||
Since this function expects to be run on the command-line, it doesn't work very
|
||||
well as a programmatically. The best option is to roll your own, and since
|
||||
JavaScript makes it stupid simple to output formatted JSON, that is the
|
||||
preferred method. If you're sure you want to handle command-line prompting,
|
||||
then go ahead and use this programmatically.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
npm-json(1)
|
19
deps/npm/doc/api/install.md
vendored
Normal file
19
deps/npm/doc/api/install.md
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
npm-install(3) -- install a package programmatically
|
||||
====================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.install([where,] packages, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This acts much the same ways as installing on the command-line.
|
||||
|
||||
The 'where' parameter is optional and only used internally, and it specifies
|
||||
where the packages should be installed to.
|
||||
|
||||
The 'packages' parameter is an array of strings. Each element in the array is
|
||||
the name of a package to be installed.
|
||||
|
||||
Finally, 'callback' is a function that will be called when all packages have been
|
||||
installed or when an error has been encountered.
|
33
deps/npm/doc/api/link.md
vendored
Normal file
33
deps/npm/doc/api/link.md
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
npm-link(3) -- Symlink a package folder
|
||||
=======================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.command.link(callback)
|
||||
npm.command.link(packages, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Package linking is a two-step process.
|
||||
|
||||
Without parameters, link will create a globally-installed
|
||||
symbolic link from `prefix/package-name` to the current folder.
|
||||
|
||||
With a parameters, link will create a symlink from the local `node_modules`
|
||||
folder to the global symlink.
|
||||
|
||||
When creating tarballs for `npm publish`, the linked packages are
|
||||
"snapshotted" to their current state by resolving the symbolic links.
|
||||
|
||||
This is
|
||||
handy for installing your own stuff, so that you can work on it and test it
|
||||
iteratively without having to continually rebuild.
|
||||
|
||||
For example:
|
||||
|
||||
npm.commands.link(cb) # creates global link from the cwd
|
||||
# (say redis package)
|
||||
npm.commands.link('redis', cb) # link-install the package
|
||||
|
||||
Now, any changes to the redis package will be reflected in
|
||||
the package in the current working directory
|
1
deps/npm/doc/api/list.md
vendored
Symbolic link
1
deps/npm/doc/api/list.md
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
ls.md
|
1
deps/npm/doc/api/ln.md
vendored
Symbolic link
1
deps/npm/doc/api/ln.md
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
link.md
|
26
deps/npm/doc/api/load.md
vendored
Normal file
26
deps/npm/doc/api/load.md
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
npm-load(3) -- Load config settings
|
||||
===================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.load(conf, cb)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
npm.load() must be called before any other function call. Both parameters are
|
||||
optional, but the second is recommended.
|
||||
|
||||
The first parameter is an object hash of command-line config params, and the
|
||||
second parameter is a callback that will be called when npm is loaded and
|
||||
ready to serve.
|
||||
|
||||
The first parameter should follow a similar structure as the package.json
|
||||
config object.
|
||||
|
||||
For example, to emulate the --dev flag, pass an object that looks like this:
|
||||
|
||||
{
|
||||
"dev": true
|
||||
}
|
||||
|
||||
For a list of all the available command-line configs, see `npm help config`
|
50
deps/npm/doc/api/ls.md
vendored
Normal file
50
deps/npm/doc/api/ls.md
vendored
Normal file
@ -0,0 +1,50 @@
|
||||
npm-ls(3) -- List installed packages
|
||||
======================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.ls(args, [silent,] callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command will print to stdout all the versions of packages that are
|
||||
installed, as well as their dependencies, in a tree-structure. It will also
|
||||
return that data using the callback.
|
||||
|
||||
This command does not take any arguments, but args must be defined.
|
||||
Beyond that, if any arguments are passed in, npm will politely warn that it
|
||||
does not take positional arguments, though you may set config flags
|
||||
like with any other command, such as `global` to list global packages.
|
||||
|
||||
It will print out extraneous, missing, and invalid packages.
|
||||
|
||||
If the silent parameter is set to true, nothing will be output to the screen,
|
||||
but the data will still be returned.
|
||||
|
||||
## CONFIGURATION
|
||||
|
||||
### long
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
Show extended information.
|
||||
|
||||
### parseable
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
Show parseable output instead of tree view.
|
||||
|
||||
### global
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
List packages in the global install prefix instead of in the current
|
||||
project.
|
||||
|
||||
Note, if parseable is set or long isn't set, then duplicates will be trimmed.
|
||||
This means that if a submodule a same dependency as a parent module, then the
|
||||
dependency will only be output once.
|
115
deps/npm/doc/api/npm.md
vendored
Normal file
115
deps/npm/doc/api/npm.md
vendored
Normal file
@ -0,0 +1,115 @@
|
||||
npm(3) -- node package manager
|
||||
==============================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
var npm = require("npm")
|
||||
npm.load(configObject, function (er, npm) {
|
||||
// use the npm object, now that it's loaded.
|
||||
|
||||
npm.config.set(key, val)
|
||||
val = npm.config.get(key)
|
||||
|
||||
console.log("prefix = %s", npm.prefix)
|
||||
|
||||
npm.commands.install(["package"], cb)
|
||||
})
|
||||
|
||||
## VERSION
|
||||
|
||||
@VERSION@
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This is the API documentation for npm.
|
||||
To find documentation of the command line
|
||||
client, see `npm(1)`.
|
||||
|
||||
Prior to using npm's commands,
|
||||
`npm.load()` must be called with an object hash of
|
||||
top-level configs. In the npm command line client,
|
||||
this set of configs is parsed from the command line options. Additional
|
||||
configuration params are loaded from two configuration files. See
|
||||
`npm-config(1)` for more information.
|
||||
|
||||
After that, each of the functions are accessible in the
|
||||
commands object: `npm.commands.<cmd>`. See `npm-index(1)` for a list of
|
||||
all possible commands.
|
||||
|
||||
All commands on the command object take an **array** of positional argument
|
||||
**strings**. The last argument to any function is a callback. Some
|
||||
commands take other optional arguments.
|
||||
|
||||
Configs cannot currently be set on a per function basis, as each call to
|
||||
npm.config.set will change the value for *all* npm commands in that process.
|
||||
|
||||
To find API documentation for a specific command, run the `npm apihelp`
|
||||
command.
|
||||
|
||||
## METHODS AND PROPERTIES
|
||||
|
||||
* `npm.load(configs, cb)`
|
||||
|
||||
Load the configuration params, and call the `cb` function once the
|
||||
globalconfig and userconfig files have been loaded as well, or on
|
||||
nextTick if they've already been loaded.
|
||||
|
||||
* `npm.config`
|
||||
|
||||
An object for accessing npm configuration parameters.
|
||||
|
||||
* `npm.config.get(key)`
|
||||
* `npm.config.set(key, val)`
|
||||
* `npm.config.del(key)`
|
||||
|
||||
* `npm.dir` or `npm.root`
|
||||
|
||||
The `node_modules` directory where npm will operate.
|
||||
|
||||
* `npm.prefix`
|
||||
|
||||
The prefix where npm is operating. (Most often the current working
|
||||
directory.)
|
||||
|
||||
* `npm.cache`
|
||||
|
||||
The place where npm keeps JSON and tarballs it fetches from the
|
||||
registry (or uploads to the registry).
|
||||
|
||||
* `npm.tmp`
|
||||
|
||||
npm's temporary working directory.
|
||||
|
||||
* `npm.deref`
|
||||
|
||||
Get the "real" name for a command that has either an alias or
|
||||
abbreviation.
|
||||
|
||||
## MAGIC
|
||||
|
||||
For each of the methods in the `npm.commands` hash, a method is added to
|
||||
the npm object, which takes a set of positional string arguments rather
|
||||
than an array and a callback.
|
||||
|
||||
If the last argument is a callback, then it will use the supplied
|
||||
callback. However, if no callback is provided, then it will print out
|
||||
the error or results.
|
||||
|
||||
For example, this would work in a node repl:
|
||||
|
||||
> npm = require("npm")
|
||||
> npm.load() // wait a sec...
|
||||
> npm.install("dnode", "express")
|
||||
|
||||
Note that that *won't* work in a node program, since the `install`
|
||||
method will get called before the configuration load is completed.
|
||||
|
||||
## ABBREVS
|
||||
|
||||
In order to support `npm ins foo` instead of `npm install foo`, the
|
||||
`npm.commands` object has a set of abbreviations as well as the full
|
||||
method names. Use the `npm.deref` method to find the real name.
|
||||
|
||||
For example:
|
||||
|
||||
var cmd = npm.deref("unp") // cmd === "unpublish"
|
13
deps/npm/doc/api/outdated.md
vendored
Normal file
13
deps/npm/doc/api/outdated.md
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
npm-outdated(3) -- Check for outdated packages
|
||||
==============================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.outdated([packages,] callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command will check the registry to see if the specified packages are
|
||||
currently outdated.
|
||||
|
||||
If the 'packages' parameter is left out, npm will check all packages.
|
31
deps/npm/doc/api/owner.md
vendored
Normal file
31
deps/npm/doc/api/owner.md
vendored
Normal file
@ -0,0 +1,31 @@
|
||||
npm-owner(3) -- Manage package owners
|
||||
=====================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.owner(args, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
The first element of the 'args' parameter defines what to do, and the subsequent
|
||||
elements depend on the action. Possible values for the action are (order of
|
||||
parameters are given in parenthesis):
|
||||
|
||||
* ls (package):
|
||||
List all the users who have access to modify a package and push new versions.
|
||||
Handy when you need to know who to bug for help.
|
||||
* add (user, package):
|
||||
Add a new user as a maintainer of a package. This user is enabled to modify
|
||||
metadata, publish new versions, and add other owners.
|
||||
* rm (user, package):
|
||||
Remove a user from the package owner list. This immediately revokes their
|
||||
privileges.
|
||||
|
||||
Note that there is only one level of access. Either you can modify a package,
|
||||
or you can't. Future versions may contain more fine-grained access levels, but
|
||||
that is not implemented at this time.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-publish(3)
|
||||
* npm-registry(1)
|
19
deps/npm/doc/api/pack.md
vendored
Normal file
19
deps/npm/doc/api/pack.md
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
npm-pack(3) -- Create a tarball from a package
|
||||
==============================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.pack([packages,] callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
For anything that's installable (that is, a package folder, tarball,
|
||||
tarball url, name@tag, name@version, or name), this command will fetch
|
||||
it to the cache, and then copy the tarball to the current working
|
||||
directory as `<name>-<version>.tgz`, and then write the filenames out to
|
||||
stdout.
|
||||
|
||||
If the same package is specified multiple times, then the file will be
|
||||
overwritten the second time.
|
||||
|
||||
If no arguments are supplied, then npm packs the current package folder.
|
15
deps/npm/doc/api/prefix.md
vendored
Normal file
15
deps/npm/doc/api/prefix.md
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
npm-prefix(3) -- Display prefix
|
||||
===============================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.prefix(args, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Print the prefix to standard out.
|
||||
|
||||
'args' is never used and callback is never called with data.
|
||||
'args' must be present or things will break.
|
||||
|
||||
This function is not useful programmatically
|
17
deps/npm/doc/api/prune.md
vendored
Normal file
17
deps/npm/doc/api/prune.md
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
npm-prune(3) -- Remove extraneous packages
|
||||
==========================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.prune([packages,] callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command removes "extraneous" packages.
|
||||
|
||||
The first parameter is optional, and it specifies packages to be removed.
|
||||
|
||||
No packages are specified, then all packages will be checked.
|
||||
|
||||
Extraneous packages are packages that are not listed on the parent
|
||||
package's dependencies list.
|
30
deps/npm/doc/api/publish.md
vendored
Normal file
30
deps/npm/doc/api/publish.md
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
npm-publish(3) -- Publish a package
|
||||
===================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.publish([packages,] callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Publishes a package to the registry so that it can be installed by name.
|
||||
Possible values in the 'packages' array are:
|
||||
|
||||
* `<folder>`:
|
||||
A folder containing a package.json file
|
||||
|
||||
* `<tarball>`:
|
||||
A url or file path to a gzipped tar archive containing a single folder
|
||||
with a package.json file inside.
|
||||
|
||||
If the package array is empty, npm will try to publish something in the
|
||||
current working directory.
|
||||
|
||||
This command could fails if one of the packages specified already exists in
|
||||
the registry. Overwrites when the "force" environment variable is set.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-registry(1)
|
||||
* npm-adduser(1)
|
||||
* npm-owner(3)
|
16
deps/npm/doc/api/rebuild.md
vendored
Normal file
16
deps/npm/doc/api/rebuild.md
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
npm-rebuild(3) -- Rebuild a package
|
||||
===================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.rebuild([packages,] callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command runs the `npm build` command on each of the matched packages. This is useful
|
||||
when you install a new version of node, and must recompile all your C++ addons with
|
||||
the new binary. If no 'packages' parameter is specify, every package will be rebuilt.
|
||||
|
||||
## CONFIGURATION
|
||||
|
||||
See `npm help build`
|
22
deps/npm/doc/api/restart.md
vendored
Normal file
22
deps/npm/doc/api/restart.md
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
npm-restart(3) -- Start a package
|
||||
=================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.restart(packages, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This runs a package's "restart" script, if one was provided.
|
||||
Otherwise it runs package's "stop" script, if one was provided, and then
|
||||
the "start" script.
|
||||
|
||||
If no version is specified, then it restarts the "active" version.
|
||||
|
||||
npm can run tests on multiple packages. Just specify multiple packages
|
||||
in the `packages` parameter.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-start(3)
|
||||
* npm-stop(3)
|
1
deps/npm/doc/api/rm.md
vendored
Symbolic link
1
deps/npm/doc/api/rm.md
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
uninstall.md
|
15
deps/npm/doc/api/root.md
vendored
Normal file
15
deps/npm/doc/api/root.md
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
npm-root(3) -- Display npm root
|
||||
===============================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.root(args, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Print the effective `node_modules` folder to standard out.
|
||||
|
||||
'args' is never used and callback is never called with data.
|
||||
'args' must be present or things will break.
|
||||
|
||||
This function is not useful programmatically.
|
27
deps/npm/doc/api/run-script.md
vendored
Normal file
27
deps/npm/doc/api/run-script.md
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
npm-run-script(3) -- Run arbitrary package scripts
|
||||
==================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.run-script(args, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This runs an arbitrary command from a package's "scripts" object.
|
||||
|
||||
It is used by the test, start, restart, and stop commands, but can be
|
||||
called directly, as well.
|
||||
|
||||
The 'args' parameter is an array of strings. Behavior depends on the number
|
||||
of elements. If there is only one element, npm assumes that the element
|
||||
represents a command to be run on the local repository. If there is more than
|
||||
one element, then the first is assumed to be the package and the second is
|
||||
assumed to be the command to run. All other elements are ignored.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-scripts(1)
|
||||
* npm-test(3)
|
||||
* npm-start(3)
|
||||
* npm-restart(3)
|
||||
* npm-stop(3)
|
35
deps/npm/doc/api/search.md
vendored
Normal file
35
deps/npm/doc/api/search.md
vendored
Normal file
@ -0,0 +1,35 @@
|
||||
npm-search(3) -- Search for packages
|
||||
====================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.search(searchTerms, [silent,] [staleness,] callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Search the registry for packages matching the search terms. The available parameters are:
|
||||
|
||||
* searchTerms:
|
||||
Array of search terms. These terms are case-insensitive.
|
||||
* silent:
|
||||
If true, npm will not log anything to the console.
|
||||
* staleness:
|
||||
This is the threshold for stale packages. "Fresh" packages are not refreshed
|
||||
from the registry. This value is measured in seconds.
|
||||
* callback:
|
||||
Returns an object where each key is the name of a package, and the value
|
||||
is information about that package along with a 'words' property, which is
|
||||
a space-delimited string of all of the interesting words in that package.
|
||||
The only properties included are those that are searched, which generally include:
|
||||
|
||||
* name
|
||||
* description
|
||||
* maintainers
|
||||
* url
|
||||
* keywords
|
||||
|
||||
A search on the registry excludes any result that does not match all of the
|
||||
search terms. It also removes any items from the results that contain an
|
||||
excluded term (the "searchexclude" config). The search is case insensitive
|
||||
and doesn't try to read your mind (it doesn't do any verb tense matching or the
|
||||
like).
|
1
deps/npm/doc/api/set.md
vendored
Symbolic link
1
deps/npm/doc/api/set.md
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
config.md
|
13
deps/npm/doc/api/start.md
vendored
Normal file
13
deps/npm/doc/api/start.md
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
npm-start(3) -- Start a package
|
||||
===============================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.start(packages, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This runs a package's "start" script, if one was provided.
|
||||
|
||||
npm can run tests on multiple packages. Just specify multiple packages
|
||||
in the `packages` parameter.
|
13
deps/npm/doc/api/stop.md
vendored
Normal file
13
deps/npm/doc/api/stop.md
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
npm-stop(3) -- Stop a package
|
||||
=============================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.stop(packages, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This runs a package's "stop" script, if one was provided.
|
||||
|
||||
npm can run stop on multiple packages. Just specify multiple packages
|
||||
in the `packages` parameter.
|
28
deps/npm/doc/api/submodule.md
vendored
Normal file
28
deps/npm/doc/api/submodule.md
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
npm-submodule(3) -- Add a package as a git submodule
|
||||
====================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.submodule(packages, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
For each package specified, npm will check if it has a git repository url
|
||||
in its package.json description then add it as a git submodule at
|
||||
`node_modules/<pkg name>`.
|
||||
|
||||
This is a convenience only. From then on, it's up to you to manage
|
||||
updates by using the appropriate git commands. npm will stubbornly
|
||||
refuse to update, modify, or remove anything with a `.git` subfolder
|
||||
in it.
|
||||
|
||||
This command also does not install missing dependencies, if the package
|
||||
does not include them in its git repository. If `npm ls` reports that
|
||||
things are missing, you can either install, link, or submodule them yourself,
|
||||
or you can do `npm explore <pkgname> -- npm install` to install the
|
||||
dependencies into the submodule folder.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm help json
|
||||
* git help submodule
|
23
deps/npm/doc/api/tag.md
vendored
Normal file
23
deps/npm/doc/api/tag.md
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
npm-tag(3) -- Tag a published version
|
||||
=====================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.tag(package@version, tag, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Tags the specified version of the package with the specified tag, or the
|
||||
`--tag` config if not specified.
|
||||
|
||||
The 'package@version' is an array of strings, but only the first two elements are
|
||||
currently used.
|
||||
|
||||
The first element must be in the form package@version, where package
|
||||
is the package name and version is the version number (much like installing a
|
||||
specific version).
|
||||
|
||||
The second element is the name of the tag to tag this version with. If this
|
||||
parameter is missing or falsey (empty), the default froom the config will be
|
||||
used. For more information about how to set this config, check
|
||||
`man 3 npm-config` for programmatic usage or `man npm-config` for cli usage.
|
16
deps/npm/doc/api/test.md
vendored
Normal file
16
deps/npm/doc/api/test.md
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
npm-test(3) -- Test a package
|
||||
=============================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.test(packages, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This runs a package's "test" script, if one was provided.
|
||||
|
||||
To run tests as a condition of installation, set the `npat` config to
|
||||
true.
|
||||
|
||||
npm can run tests on multiple packages. Just specify multiple packages
|
||||
in the `packages` parameter.
|
16
deps/npm/doc/api/uninstall.md
vendored
Normal file
16
deps/npm/doc/api/uninstall.md
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
npm-uninstall(3) -- uninstall a package programmatically
|
||||
========================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.uninstall(packages, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This acts much the same ways as uninstalling on the command-line.
|
||||
|
||||
The 'packages' parameter is an array of strings. Each element in the array is
|
||||
the name of a package to be uninstalled.
|
||||
|
||||
Finally, 'callback' is a function that will be called when all packages have been
|
||||
uninstalled or when an error has been encountered.
|
20
deps/npm/doc/api/unpublish.md
vendored
Normal file
20
deps/npm/doc/api/unpublish.md
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
npm-unpublish(3) -- Remove a package from the registry
|
||||
======================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.unpublish(package, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This removes a package version from the registry, deleting its
|
||||
entry and removing the tarball.
|
||||
|
||||
The package parameter must be defined.
|
||||
|
||||
Only the first element in the package parameter is used. If there is no first
|
||||
element, then npm assumes that the package at the current working directory
|
||||
is what is meant.
|
||||
|
||||
If no version is specified, or if all versions are removed then
|
||||
the root package entry is removed from the registry entirely.
|
11
deps/npm/doc/api/update.md
vendored
Normal file
11
deps/npm/doc/api/update.md
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
npm-update(3) -- Update a package
|
||||
=================================
|
||||
|
||||
## SYNOPSIS
|
||||
npm.commands.update(packages, callback)
|
||||
|
||||
# DESCRIPTION
|
||||
|
||||
Updates a package, upgrading it to the latest version. It also installs any missing packages.
|
||||
|
||||
The 'packages' argument is an array of packages to update. The 'callback' parameter will be called when done or when an error occurs.
|
18
deps/npm/doc/api/version.md
vendored
Normal file
18
deps/npm/doc/api/version.md
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
npm-version(3) -- Bump a package version
|
||||
========================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.version(newversion, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Run this in a package directory to bump the version and write the new
|
||||
data back to the package.json file.
|
||||
|
||||
If run in a git repo, it will also create a version commit and tag, and
|
||||
fail if the repo is not clean.
|
||||
|
||||
Like all other commands, this function takes a string array as its first
|
||||
parameter. The difference, however, is this function will fail if it does
|
||||
not have exactly one element. The only element should be a version number.
|
93
deps/npm/doc/api/view.md
vendored
Normal file
93
deps/npm/doc/api/view.md
vendored
Normal file
@ -0,0 +1,93 @@
|
||||
npm-view(3) -- View registry info
|
||||
=================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.view(args, [silent,] callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command shows data about a package and prints it to the stream
|
||||
referenced by the `outfd` config, which defaults to stdout.
|
||||
|
||||
The "args" parameter is an ordered list that closely resembles the command-line
|
||||
usage. The elements should be ordered such that the first element is
|
||||
the package and version (package@version). The version is optional. After that,
|
||||
the rest of the parameters are fields with optional subfields ("field.subfield")
|
||||
which can be used to get only the information desired from the registry.
|
||||
|
||||
The callback will be passed all of the data returned by the query.
|
||||
|
||||
For example, to get the package registry entry for the `connect` package,
|
||||
you can do this:
|
||||
|
||||
npm.commands.view(["connect"], callback)
|
||||
|
||||
If no version is specified, "latest" is assumed.
|
||||
|
||||
Field names can be specified after the package descriptor.
|
||||
For example, to show the dependencies of the `ronn` package at version
|
||||
0.3.5, you could do the following:
|
||||
|
||||
npm.commands.view(["ronn@0.3.5", "dependencies"], callback)
|
||||
|
||||
You can view child field by separating them with a period.
|
||||
To view the git repository URL for the latest version of npm, you could
|
||||
do this:
|
||||
|
||||
npm.commands.view(["npm", "repository.url"], callback)
|
||||
|
||||
For fields that are arrays, requesting a non-numeric field will return
|
||||
all of the values from the objects in the list. For example, to get all
|
||||
the contributor names for the "express" project, you can do this:
|
||||
|
||||
npm.commands.view(["express", "contributors.email"], callback)
|
||||
|
||||
You may also use numeric indices in square braces to specifically select
|
||||
an item in an array field. To just get the email address of the first
|
||||
contributor in the list, you can do this:
|
||||
|
||||
npm.commands.view(["express", "contributors[0].email"], callback)
|
||||
|
||||
Multiple fields may be specified, and will be printed one after another.
|
||||
For exampls, to get all the contributor names and email addresses, you
|
||||
can do this:
|
||||
|
||||
npm.commands.view(["express", "contributors.name", "contributors.email"], callback)
|
||||
|
||||
"Person" fields are shown as a string if they would be shown as an
|
||||
object. So, for example, this will show the list of npm contributors in
|
||||
the shortened string format. (See `npm help json` for more on this.)
|
||||
|
||||
npm.commands.view(["npm", "contributors"], callback)
|
||||
|
||||
If a version range is provided, then data will be printed for every
|
||||
matching version of the package. This will show which version of jsdom
|
||||
was required by each matching version of yui3:
|
||||
|
||||
npm.commands.view(["yui3@'>0.5.4'", "dependencies.jsdom"], callback)
|
||||
|
||||
## OUTPUT
|
||||
|
||||
If only a single string field for a single version is output, then it
|
||||
will not be colorized or quoted, so as to enable piping the output to
|
||||
another command.
|
||||
|
||||
If the version range matches multiple versions, than each printed value
|
||||
will be prefixed with the version it applies to.
|
||||
|
||||
If multiple fields are requested, than each of them are prefixed with
|
||||
the field name.
|
||||
|
||||
Console output can be disabled by setting the 'silent' parameter to true.
|
||||
|
||||
## RETURN VALUE
|
||||
|
||||
The data returned will be an object in this formation:
|
||||
|
||||
{ <version>:
|
||||
{ <field>: <value>
|
||||
, ... }
|
||||
, ... }
|
||||
|
||||
corresponding to the list of fields selected.
|
15
deps/npm/doc/api/whoami.md
vendored
Normal file
15
deps/npm/doc/api/whoami.md
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
npm-whoami(3) -- Display npm username
|
||||
=====================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.whoami(args, callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Print the `username` config to standard output.
|
||||
|
||||
'args' is never used and callback is never called with data.
|
||||
'args' must be present or things will break.
|
||||
|
||||
This function is not useful programmatically
|
36
deps/npm/doc/cli/adduser.md
vendored
Normal file
36
deps/npm/doc/cli/adduser.md
vendored
Normal file
@ -0,0 +1,36 @@
|
||||
npm-adduser(1) -- Add a registry user account
|
||||
=============================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm adduser
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Create or verify a user named `<username>` in the npm registry, and
|
||||
save the credentials to the `.npmrc` file.
|
||||
|
||||
The username, password, and email are read in from prompts.
|
||||
|
||||
You may use this command to change your email address, but not username
|
||||
or password.
|
||||
|
||||
To reset your password, go to <http://admin.npmjs.org/>
|
||||
|
||||
You may use this command multiple times with the same user account to
|
||||
authorize on a new machine.
|
||||
|
||||
## CONFIGURATION
|
||||
|
||||
### registry
|
||||
|
||||
Default: http://registry.npmjs.org/
|
||||
|
||||
The base URL of the npm package registry.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-registry(1)
|
||||
* npm-config(1)
|
||||
* npm-owner(1)
|
||||
* npm-whoami(1)
|
1
deps/npm/doc/cli/author.md
vendored
Symbolic link
1
deps/npm/doc/cli/author.md
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
owner.md
|
17
deps/npm/doc/cli/bin.md
vendored
Normal file
17
deps/npm/doc/cli/bin.md
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
npm-bin(1) -- Display npm bin folder
|
||||
====================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm bin
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Print the folder where npm will install executables.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-prefix(1)
|
||||
* npm-root(1)
|
||||
* npm-folders(1)
|
||||
* npm-config(1)
|
38
deps/npm/doc/cli/bugs.md
vendored
Normal file
38
deps/npm/doc/cli/bugs.md
vendored
Normal file
@ -0,0 +1,38 @@
|
||||
npm-bugs(1) -- Bugs for a package in a web browser maybe
|
||||
========================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm bugs <pkgname>
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command tries to guess at the likely location of a package's
|
||||
bug tracker URL, and then tries to open it using the `--browser`
|
||||
config param.
|
||||
|
||||
## CONFIGURATION
|
||||
|
||||
### browser
|
||||
|
||||
* Default: OS X: `"open"`, others: `"google-chrome"`
|
||||
* Type: String
|
||||
|
||||
The browser that is called by the `npm bugs` command to open websites.
|
||||
|
||||
### registry
|
||||
|
||||
* Default: https://registry.npmjs.org/
|
||||
* Type: url
|
||||
|
||||
The base URL of the npm package registry.
|
||||
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-docs(1)
|
||||
* npm-view(1)
|
||||
* npm-publish(1)
|
||||
* npm-registry(1)
|
||||
* npm-config(1)
|
||||
* npm-json(1)
|
22
deps/npm/doc/cli/build.md
vendored
Normal file
22
deps/npm/doc/cli/build.md
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
npm-build(1) -- Build a package
|
||||
===============================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm build <package-folder>
|
||||
|
||||
* `<package-folder>`:
|
||||
A folder containing a `package.json` file in its root.
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This is the plumbing command called by `npm link` and `npm install`.
|
||||
|
||||
It should generally not be called directly.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-install(1)
|
||||
* npm-link(1)
|
||||
* npm-scripts(1)
|
||||
* npm-json(1)
|
14
deps/npm/doc/cli/bundle.md
vendored
Normal file
14
deps/npm/doc/cli/bundle.md
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
npm-bundle(1) -- REMOVED
|
||||
========================
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
The `npm bundle` command has been removed in 1.0, for the simple reason
|
||||
that it is no longer necessary, as the default behavior is now to
|
||||
install packages into the local space.
|
||||
|
||||
Just use `npm install` now to do what `npm bundle` used to do.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-install(1)
|
70
deps/npm/doc/cli/cache.md
vendored
Normal file
70
deps/npm/doc/cli/cache.md
vendored
Normal file
@ -0,0 +1,70 @@
|
||||
npm-cache(1) -- Manipulates packages cache
|
||||
==========================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm cache add <tarball file>
|
||||
npm cache add <folder>
|
||||
npm cache add <tarball url>
|
||||
npm cache add <name>@<version>
|
||||
|
||||
npm cache ls [<path>]
|
||||
|
||||
npm cache clean [<path>]
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Used to add, list, or clear the npm cache folder.
|
||||
|
||||
* add:
|
||||
Add the specified package to the local cache. This command is primarily
|
||||
intended to be used internally by npm, but it can provide a way to
|
||||
add data to the local installation cache explicitly.
|
||||
|
||||
* ls:
|
||||
Show the data in the cache. Argument is a path to show in the cache
|
||||
folder. Works a bit like the `find` program, but limited by the
|
||||
`depth` config.
|
||||
|
||||
* clean:
|
||||
Delete data out of the cache folder. If an argument is provided, then
|
||||
it specifies a subpath to delete. If no argument is provided, then
|
||||
the entire cache is cleared.
|
||||
|
||||
## DETAILS
|
||||
|
||||
npm stores cache data in `$HOME/.npm`. For each package that is added
|
||||
to the cache, three pieces of information are stored in
|
||||
`{cache}/{name}/{version}`:
|
||||
|
||||
* .../package/:
|
||||
A folder containing the package contents as they appear in the tarball.
|
||||
* .../package.json:
|
||||
The package.json file, as npm sees it, with overlays applied and a _id attribute.
|
||||
* .../package.tgz:
|
||||
The tarball for that version.
|
||||
|
||||
Additionally, whenever a registry request is made, a `.cache.json` file
|
||||
is placed at the corresponding URI, to store the ETag and the requested
|
||||
data.
|
||||
|
||||
Commands that make non-essential registry requests (such as `search` and
|
||||
`view`, or the completion scripts) generally specify a minimum timeout.
|
||||
If the `.cache.json` file is younger than the specified timeout, then
|
||||
they do not make an HTTP request to the registry.
|
||||
|
||||
## CONFIGURATION
|
||||
|
||||
### cache
|
||||
|
||||
Default: `$HOME/.npm` on Posix, or `$HOME/npm-cache` on Windows.
|
||||
|
||||
The root cache folder.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-folders(1)
|
||||
* npm-config(1)
|
||||
* npm-install(1)
|
||||
* npm-publish(1)
|
||||
* npm-pack(1)
|
36
deps/npm/doc/cli/changelog.md
vendored
Normal file
36
deps/npm/doc/cli/changelog.md
vendored
Normal file
@ -0,0 +1,36 @@
|
||||
npm-changelog(1) -- Changes
|
||||
===========================
|
||||
|
||||
## HISTORY
|
||||
|
||||
### 1.0
|
||||
* Greatly simplified folder structure
|
||||
* Install locally (bundle by default)
|
||||
* Drastic rearchitecture
|
||||
|
||||
### 0.3
|
||||
* More correct permission/uid handling when running as root
|
||||
* Require node 0.4.0
|
||||
* Reduce featureset
|
||||
* Packages without "main" modules don't export modules
|
||||
* Remove support for invalid JSON (since node doesn't support it)
|
||||
|
||||
### 0.2
|
||||
* First allegedly "stable" release
|
||||
* Most functionality implemented
|
||||
* Used shim files and `name@version` symlinks
|
||||
* Feature explosion
|
||||
* Kind of a mess
|
||||
|
||||
### 0.1
|
||||
* push to beta, and announce
|
||||
* Solaris and Cygwin support
|
||||
|
||||
### 0.0
|
||||
* Lots of sketches and false starts; abandoned a few times
|
||||
* Core functionality established
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm(1)
|
||||
* npm-faq(1)
|
190
deps/npm/doc/cli/coding-style.md
vendored
Normal file
190
deps/npm/doc/cli/coding-style.md
vendored
Normal file
@ -0,0 +1,190 @@
|
||||
npm-coding-style(1) -- npm's "funny" coding style
|
||||
=================================================
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
npm's coding style is a bit unconventional. It is not different for
|
||||
difference's sake, but rather a carefully crafted style that is
|
||||
designed to reduce visual clutter and make bugs more apparent.
|
||||
|
||||
If you want to contribute to npm (which is very encouraged), you should
|
||||
make your code conform to npm's style.
|
||||
|
||||
## Line Length
|
||||
|
||||
Keep lines shorter than 80 characters. It's better for lines to be
|
||||
too short than to be too long. Break up long lists, objects, and other
|
||||
statements onto multiple lines.
|
||||
|
||||
## Indentation
|
||||
|
||||
Two-spaces. Tabs are better, but they look like hell in web browsers
|
||||
(and on github), and node uses 2 spaces, so that's that.
|
||||
|
||||
Configure your editor appropriately.
|
||||
|
||||
## Curly braces
|
||||
|
||||
Curly braces belong on the same line as the thing that necessitates them.
|
||||
|
||||
Bad:
|
||||
|
||||
function ()
|
||||
{
|
||||
|
||||
Good:
|
||||
|
||||
function () {
|
||||
|
||||
If a block needs to wrap to the next line, use a curly brace. Don't
|
||||
use it if it doesn't.
|
||||
|
||||
Bad:
|
||||
|
||||
if (foo) { bar() }
|
||||
while (foo)
|
||||
bar()
|
||||
|
||||
Good:
|
||||
|
||||
if (foo) bar()
|
||||
while (foo) {
|
||||
bar()
|
||||
}
|
||||
|
||||
## Semicolons
|
||||
|
||||
Don't use them except in four situations:
|
||||
|
||||
* `for (;;)` loops. They're actually required.
|
||||
* null loops like: `while (something) ;` (But you'd better have a good
|
||||
reason for doing that.)
|
||||
* case "foo": doSomething(); break
|
||||
* In front of a leading ( or [ at the start of the line.
|
||||
This prevents the expression from being interpreted
|
||||
as a function call or property access, respectively.
|
||||
|
||||
Some examples of good semicolon usage:
|
||||
|
||||
;(x || y).doSomething()
|
||||
;[a, b, c].forEach(doSomething)
|
||||
for (var i = 0; i < 10; i ++) {
|
||||
switch (state) {
|
||||
case "begin": start(); continue
|
||||
case "end": finish(); break
|
||||
default: throw new Error("unknown state")
|
||||
}
|
||||
end()
|
||||
}
|
||||
|
||||
Note that starting lines with `-` and `+` also should be prefixed
|
||||
with a semicolon, but this is much less common.
|
||||
|
||||
## Comma First
|
||||
|
||||
If there is a list of things separated by commas, and it wraps
|
||||
across multiple lines, put the comma at the start of the next
|
||||
line, directly below the token that starts the list. Put the
|
||||
final token in the list on a line by itself. For example:
|
||||
|
||||
var magicWords = [ "abracadabra"
|
||||
, "gesundheit"
|
||||
, "ventrilo"
|
||||
]
|
||||
, spells = { "fireball" : function () { setOnFire() }
|
||||
, "water" : function () { putOut() }
|
||||
}
|
||||
, a = 1
|
||||
, b = "abc"
|
||||
, etc
|
||||
, somethingElse
|
||||
|
||||
## Whitespace
|
||||
|
||||
Put a single space in front of ( for anything other than a function call.
|
||||
Also use a single space wherever it makes things more readable.
|
||||
|
||||
Don't leave trailing whitespace at the end of lines. Don't indent empty
|
||||
lines. Don't use more spaces than are helpful.
|
||||
|
||||
## Functions
|
||||
|
||||
Use named functions. They make stack traces a lot easier to read.
|
||||
|
||||
## Callbacks, Sync/async Style
|
||||
|
||||
Use the asynchronous/non-blocking versions of things as much as possible.
|
||||
It might make more sense for npm to use the synchronous fs APIs, but this
|
||||
way, the fs and http and child process stuff all uses the same callback-passing
|
||||
methodology.
|
||||
|
||||
The callback should always be the last argument in the list. Its first
|
||||
argument is the Error or null.
|
||||
|
||||
Be very careful never to ever ever throw anything. It's worse than useless.
|
||||
Just send the error message back as the first argument to the callback.
|
||||
|
||||
## Errors
|
||||
|
||||
Always create a new Error object with your message. Don't just return a
|
||||
string message to the callback. Stack traces are handy.
|
||||
|
||||
Use the `require("./utils/log").er` function. It takes a callback and an
|
||||
error message, and returns an object that will report the message in the
|
||||
event of a failure. It's quite handy.
|
||||
|
||||
function myThing (args, cb) {
|
||||
getData(args, function (er, data) {
|
||||
if (er) return log.er(cb, "Couldn't get data")(er)
|
||||
doSomethingElse(data, cb)
|
||||
})
|
||||
}
|
||||
function justHasToWork (cb) {
|
||||
doSomething(log.er(cb, "the doSomething failed."))
|
||||
}
|
||||
|
||||
## Logging
|
||||
|
||||
Please clean up logs when they are no longer helpful. In particular,
|
||||
logging the same object over and over again is not helpful. Logs should
|
||||
report what's happening so that it's easier to track down where a fault
|
||||
occurs.
|
||||
|
||||
Use appropriate log levels. The default log() function logs at the
|
||||
"info" level. See `npm-config(1)` and search for "loglevel".
|
||||
|
||||
## Case, naming, etc.
|
||||
|
||||
Use lowerCamelCase for multiword identifiers when they refer to objects,
|
||||
functions, methods, members, or anything not specified in this section.
|
||||
|
||||
Use UpperCamelCase for class names (things that you'd pass to "new").
|
||||
|
||||
Use all-lower-hyphen-css-case for multiword filenames and config keys.
|
||||
|
||||
Use named functions. They make stack traces easier to follow.
|
||||
|
||||
Use CAPS_SNAKE_CASE for constants, things that should never change
|
||||
and are rarely used.
|
||||
|
||||
Use a single uppercase letter for function names where the function
|
||||
would normally be anonymous, but needs to call itself recursively. It
|
||||
makes it clear that it's a "throwaway" function.
|
||||
|
||||
## null, undefined, false, 0
|
||||
|
||||
Boolean variables and functions should always be either `true` or
|
||||
`false`. Don't set it to 0 unless it's supposed to be a number.
|
||||
|
||||
When something is intentionally missing or removed, set it to `null`.
|
||||
|
||||
Don't set things to `undefined`. Reserve that value to mean "not yet
|
||||
set to anything."
|
||||
|
||||
Boolean objects are verboten.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-developers(1)
|
||||
* npm-faq(1)
|
||||
* npm(1)
|
29
deps/npm/doc/cli/completion.md
vendored
Normal file
29
deps/npm/doc/cli/completion.md
vendored
Normal file
@ -0,0 +1,29 @@
|
||||
npm-completion(1) -- Tab Completion for npm
|
||||
===========================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
. <(npm completion)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Enables tab-completion in all npm commands.
|
||||
|
||||
The synopsis above
|
||||
loads the completions into your current shell. Adding it to
|
||||
your ~/.bashrc or ~/.zshrc will make the completions available
|
||||
everywhere.
|
||||
|
||||
You may of course also pipe the output of npm completion to a file
|
||||
such as `/usr/local/etc/bash_completion.d/npm` if you have a system
|
||||
that will read that file for you.
|
||||
|
||||
When `COMP_CWORD`, `COMP_LINE`, and `COMP_POINT` are defined in the
|
||||
environment, `npm completion` acts in "plumbing mode", and outputs
|
||||
completions based on the arguments.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-developers(1)
|
||||
* npm-faq(1)
|
||||
* npm(1)
|
665
deps/npm/doc/cli/config.md
vendored
Normal file
665
deps/npm/doc/cli/config.md
vendored
Normal file
@ -0,0 +1,665 @@
|
||||
npm-config(1) -- Manage the npm configuration file
|
||||
==================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm config set <key> <value> [--global]
|
||||
npm config get <key>
|
||||
npm config delete <key>
|
||||
npm config list
|
||||
npm config edit
|
||||
npm get <key>
|
||||
npm set <key> <value> [--global]
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
npm gets its configuration values from 6 sources, in this priority:
|
||||
|
||||
### Command Line Flags
|
||||
|
||||
Putting `--foo bar` on the command line sets the
|
||||
`foo` configuration parameter to `"bar"`. A `--` argument tells the cli
|
||||
parser to stop reading flags. A `--flag` parameter that is at the *end* of
|
||||
the command will be given the value of `true`.
|
||||
|
||||
### Environment Variables
|
||||
|
||||
Any environment variables that start with `npm_config_` will be interpreted
|
||||
as a configuration parameter. For example, putting `npm_config_foo=bar` in
|
||||
your environment will set the `foo` configuration parameter to `bar`. Any
|
||||
environment configurations that are not given a value will be given the value
|
||||
of `true`. Config values are case-insensitive, so `NPM_CONFIG_FOO=bar` will
|
||||
work the same.
|
||||
|
||||
### Per-user config file
|
||||
|
||||
`$HOME/.npmrc` (or the `userconfig` param, if set above)
|
||||
|
||||
This file is an ini-file formatted list of `key = value` parameters.
|
||||
|
||||
### Global config file
|
||||
|
||||
`$PREFIX/etc/npmrc` (or the `globalconfig` param, if set above):
|
||||
This file is an ini-file formatted list of `key = value` parameters
|
||||
|
||||
### Built-in config file
|
||||
|
||||
`path/to/npm/itself/npmrc`
|
||||
|
||||
This is an unchangeable "builtin"
|
||||
configuration file that npm keeps consistent across updates. Set
|
||||
fields in here using the `./configure` script that comes with npm.
|
||||
This is primarily for distribution maintainers to override default
|
||||
configs in a standard and consistent manner.
|
||||
|
||||
### Default Configs
|
||||
|
||||
A set of configuration parameters that are internal to npm, and are
|
||||
defaults if nothing else is specified.
|
||||
|
||||
## Sub-commands
|
||||
|
||||
Config supports the following sub-commands:
|
||||
|
||||
### set
|
||||
|
||||
npm config set key value
|
||||
|
||||
Sets the config key to the value.
|
||||
|
||||
If value is omitted, then it sets it to "true".
|
||||
|
||||
### get
|
||||
|
||||
npm config get key
|
||||
|
||||
Echo the config value to stdout.
|
||||
|
||||
### list
|
||||
|
||||
npm config list
|
||||
|
||||
Show all the config settings.
|
||||
|
||||
### delete
|
||||
|
||||
npm config delete key
|
||||
|
||||
Deletes the key from all configuration files.
|
||||
|
||||
### edit
|
||||
|
||||
npm config edit
|
||||
|
||||
Opens the config file in an editor. Use the `--global` flag to edit the
|
||||
global config.
|
||||
|
||||
## Shorthands and Other CLI Niceties
|
||||
|
||||
The following shorthands are parsed on the command-line:
|
||||
|
||||
* `-v`: `--version`
|
||||
* `-h`, `-?`, `--help`, `-H`: `--usage`
|
||||
* `-s`, `--silent`: `--loglevel silent`
|
||||
* `-d`: `--loglevel info`
|
||||
* `-dd`, `--verbose`: `--loglevel verbose`
|
||||
* `-ddd`: `--loglevel silly`
|
||||
* `-g`: `--global`
|
||||
* `-l`: `--long`
|
||||
* `-m`: `--message`
|
||||
* `-p`, `--porcelain`: `--parseable`
|
||||
* `-reg`: `--registry`
|
||||
* `-v`: `--version`
|
||||
* `-f`: `--force`
|
||||
* `-l`: `--long`
|
||||
* `-desc`: `--description`
|
||||
* `-S`: `--save`
|
||||
* `-y`: `--yes`
|
||||
* `-n`: `--yes false`
|
||||
* `ll` and `la` commands: `ls --long`
|
||||
|
||||
If the specified configuration param resolves unambiguously to a known
|
||||
configuration parameter, then it is expanded to that configuration
|
||||
parameter. For example:
|
||||
|
||||
npm ls --par
|
||||
# same as:
|
||||
npm ls --parseable
|
||||
|
||||
If multiple single-character shorthands are strung together, and the
|
||||
resulting combination is unambiguously not some other configuration
|
||||
param, then it is expanded to its various component pieces. For
|
||||
example:
|
||||
|
||||
npm ls -gpld
|
||||
# same as:
|
||||
npm ls --global --parseable --long --loglevel info
|
||||
|
||||
## Per-Package Config Settings
|
||||
|
||||
When running scripts (see `npm-scripts(1)`)
|
||||
the package.json "config" keys are overwritten in the environment if
|
||||
there is a config param of `<name>[@<version>]:<key>`. For example, if
|
||||
the package.json has this:
|
||||
|
||||
{ "name" : "foo"
|
||||
, "config" : { "port" : "8080" }
|
||||
, "scripts" : { "start" : "node server.js" } }
|
||||
|
||||
and the server.js is this:
|
||||
|
||||
http.createServer(...).listen(process.env.npm_package_config_port)
|
||||
|
||||
then the user could change the behavior by doing:
|
||||
|
||||
npm config set foo:port 80
|
||||
|
||||
## Config Settings
|
||||
|
||||
### always-auth
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
Force npm to always require authentication when accessing the registry,
|
||||
even for `GET` requests.
|
||||
|
||||
### bin-publish
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
If set to true, then binary packages will be created on publish.
|
||||
|
||||
This is the way to opt into the "bindist" behavior described below.
|
||||
|
||||
### bindist
|
||||
|
||||
* Default: Unstable node versions, `null`, otherwise
|
||||
`"<node version>-<platform>-<os release>"`
|
||||
* Type: String or `null`
|
||||
|
||||
Experimental: on stable versions of node, binary distributions will be
|
||||
created with this tag. If a user then installs that package, and their
|
||||
`bindist` tag is found in the list of binary distributions, they will
|
||||
get that prebuilt version.
|
||||
|
||||
Pre-build node packages have their preinstall, install, and postinstall
|
||||
scripts stripped (since they are run prior to publishing), and do not
|
||||
have their `build` directories automatically ignored.
|
||||
|
||||
It's yet to be seen if this is a good idea.
|
||||
|
||||
### browser
|
||||
|
||||
* Default: OS X: `"open"`, others: `"google-chrome"`
|
||||
* Type: String
|
||||
|
||||
The browser that is called by the `npm docs` command to open websites.
|
||||
|
||||
### ca
|
||||
|
||||
* Default: The npm CA certificate
|
||||
* Type: String or null
|
||||
|
||||
The Certificate Authority signing certificate that is trusted for SSL
|
||||
connections to the registry.
|
||||
|
||||
Set to `null` to only allow "known" registrars, or to a specific CA cert
|
||||
to trust only that specific signing authority.
|
||||
|
||||
See also the `strict-ssl` config.
|
||||
|
||||
### cache
|
||||
|
||||
* Default: Windows: `~/npm-cache`, Posix: `~/.npm`
|
||||
* Type: path
|
||||
|
||||
The location of npm's cache directory. See `npm-cache(1)`
|
||||
|
||||
### color
|
||||
|
||||
* Default: true on Posix, false on Windows
|
||||
* Type: Boolean or `"always"`
|
||||
|
||||
If false, never shows colors. If `"always"` then always shows colors.
|
||||
If true, then only prints color codes for tty file descriptors.
|
||||
|
||||
### depth
|
||||
|
||||
* Default: Infinity
|
||||
* Type: Number
|
||||
|
||||
The depth to go when recursing directories for `npm ls` and
|
||||
`npm cache ls`.
|
||||
|
||||
### description
|
||||
|
||||
* Default: true
|
||||
* Type: Boolean
|
||||
|
||||
Show the description in `npm search`
|
||||
|
||||
### dev
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
Install `dev-dependencies` along with packages.
|
||||
|
||||
Note that `dev-dependencies` are also installed if the `npat` flag is
|
||||
set.
|
||||
|
||||
### editor
|
||||
|
||||
* Default: `EDITOR` environment variable if set, or `"vi"` on Posix,
|
||||
or `"notepad"` on Windows.
|
||||
* Type: path
|
||||
|
||||
The command to run for `npm edit` or `npm config edit`.
|
||||
|
||||
### force
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
Makes various commands more forceful.
|
||||
|
||||
* lifecycle script failure does not block progress.
|
||||
* publishing clobbers previously published versions.
|
||||
* skips cache when requesting from the registry.
|
||||
* prevents checks against clobbering non-npm files.
|
||||
|
||||
### global
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
Operates in "global" mode, so that packages are installed into the
|
||||
`prefix` folder instead of the current working directory. See
|
||||
`npm-folders(1)` for more on the differences in behavior.
|
||||
|
||||
* packages are installed into the `prefix/node_modules` folder, instead of the
|
||||
current working directory.
|
||||
* bin files are linked to `prefix/bin`
|
||||
* man pages are linked to `prefix/share/man`
|
||||
|
||||
### globalconfig
|
||||
|
||||
* Default: {prefix}/etc/npmrc
|
||||
* Type: path
|
||||
|
||||
The config file to read for global config options.
|
||||
|
||||
### globalignorefile
|
||||
|
||||
* Default: {prefix}/etc/npmignore
|
||||
* Type: path
|
||||
|
||||
The config file to read for global ignore patterns to apply to all users
|
||||
and all projects.
|
||||
|
||||
If not found, but there is a "gitignore" file in the
|
||||
same directory, then that will be used instead.
|
||||
|
||||
### group
|
||||
|
||||
* Default: GID of the current process
|
||||
* Type: String or Number
|
||||
|
||||
The group to use when running package scripts in global mode as the root
|
||||
user.
|
||||
|
||||
### https-proxy
|
||||
|
||||
* Default: the `HTTPS_PROXY` or `https_proxy` or `HTTP_PROXY` or
|
||||
`http_proxy` environment variables.
|
||||
* Type: url
|
||||
|
||||
A proxy to use for outgoing https requests.
|
||||
|
||||
### ignore
|
||||
|
||||
* Default: ""
|
||||
* Type: string
|
||||
|
||||
A white-space separated list of glob patterns of files to always exclude
|
||||
from packages when building tarballs.
|
||||
|
||||
### init.version
|
||||
|
||||
* Default: "0.0.0"
|
||||
* Type: semver
|
||||
|
||||
The value `npm init` should use by default for the package version.
|
||||
|
||||
### init.author.name
|
||||
|
||||
* Default: "0.0.0"
|
||||
* Type: String
|
||||
|
||||
The value `npm init` should use by default for the package author's name.
|
||||
|
||||
### init.author.email
|
||||
|
||||
* Default: ""
|
||||
* Type: String
|
||||
|
||||
The value `npm init` should use by default for the package author's email.
|
||||
|
||||
### init.author.url
|
||||
|
||||
* Default: ""
|
||||
* Type: String
|
||||
|
||||
The value `npm init` should use by default for the package author's homepage.
|
||||
|
||||
### link
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
If true, then local installs will link if there is a suitable globally
|
||||
installed package.
|
||||
|
||||
Note that this means that local installs can cause things to be
|
||||
installed into the global space at the same time. The link is only done
|
||||
if one of the two conditions are met:
|
||||
|
||||
* The package is not already installed globally, or
|
||||
* the globally installed version is identical to the version that is
|
||||
being installed locally.
|
||||
|
||||
### logfd
|
||||
|
||||
* Default: stderr file descriptor
|
||||
* Type: Number or Stream
|
||||
|
||||
The location to write log output.
|
||||
|
||||
### loglevel
|
||||
|
||||
* Default: "warn"
|
||||
* Type: String
|
||||
* Values: "silent", "win", "error", "warn", "info", "verbose", "silly"
|
||||
|
||||
What level of logs to report. On failure, *all* logs are written to
|
||||
`npm-debug.log` in the current working directory.
|
||||
|
||||
### logprefix
|
||||
|
||||
* Default: true on Posix, false on Windows
|
||||
* Type: Boolean
|
||||
|
||||
Whether or not to prefix log messages with "npm" and the log level. See
|
||||
also "color" and "loglevel".
|
||||
|
||||
### long
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
Show extended information in `npm ls`
|
||||
|
||||
### message
|
||||
|
||||
* Default: "%s"
|
||||
* Type: String
|
||||
|
||||
Commit message which is used by `npm version` when creating version commit.
|
||||
|
||||
Any "%s" in the message will be replaced with the version number.
|
||||
|
||||
### node-version
|
||||
|
||||
* Default: process.version
|
||||
* Type: semver or false
|
||||
|
||||
The node version to use when checking package's "engines" hash.
|
||||
|
||||
### npat
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
Run tests on installation and report results to the
|
||||
`npaturl`.
|
||||
|
||||
### npaturl
|
||||
|
||||
* Default: Not yet implemented
|
||||
* Type: url
|
||||
|
||||
The url to report npat test results.
|
||||
|
||||
### onload-script
|
||||
|
||||
* Default: false
|
||||
* Type: path
|
||||
|
||||
A node module to `require()` when npm loads. Useful for programmatic
|
||||
usage.
|
||||
|
||||
### outfd
|
||||
|
||||
* Default: standard output file descriptor
|
||||
* Type: Number or Stream
|
||||
|
||||
Where to write "normal" output. This has no effect on log output.
|
||||
|
||||
### parseable
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
Output parseable results from commands that write to
|
||||
standard output.
|
||||
|
||||
### prefix
|
||||
|
||||
* Default: node's process.installPrefix
|
||||
* Type: path
|
||||
|
||||
The location to install global items. If set on the command line, then
|
||||
it forces non-global commands to run in the specified folder.
|
||||
|
||||
### production
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
Set to true to run in "production" mode.
|
||||
|
||||
1. devDependencies are not installed at the topmost level when running
|
||||
local `npm install` without any arguments.
|
||||
2. Set the NODE_ENV="production" for lifecycle scripts.
|
||||
|
||||
### proxy
|
||||
|
||||
* Default: `HTTP_PROXY` or `http_proxy` environment variable, or null
|
||||
* Type: url
|
||||
|
||||
A proxy to use for outgoing http requests.
|
||||
|
||||
### rebuild-bundle
|
||||
|
||||
* Default: true
|
||||
* Type: Boolean
|
||||
|
||||
Rebuild bundled dependencies after installation.
|
||||
|
||||
### registry
|
||||
|
||||
* Default: https://registry.npmjs.org/
|
||||
* Type: url
|
||||
|
||||
The base URL of the npm package registry.
|
||||
|
||||
### rollback
|
||||
|
||||
* Default: true
|
||||
* Type: Boolean
|
||||
|
||||
Remove failed installs.
|
||||
|
||||
### save
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
Save installed packages to a package.json file as dependencies.
|
||||
|
||||
Only works if there is already a package.json file present.
|
||||
|
||||
### searchopts
|
||||
|
||||
* Default: ""
|
||||
* Type: String
|
||||
|
||||
Space-separated options that are always passed to search.
|
||||
|
||||
### searchexclude
|
||||
|
||||
* Default: ""
|
||||
* Type: String
|
||||
|
||||
Space-separated options that limit the results from search.
|
||||
|
||||
### shell
|
||||
|
||||
* Default: SHELL environment variable, or "bash" on Posix, or "cmd" on
|
||||
Windows
|
||||
* Type: path
|
||||
|
||||
The shell to run for the `npm explore` command.
|
||||
|
||||
### strict-ssl
|
||||
|
||||
* Default: true
|
||||
* Type: Boolean
|
||||
|
||||
Whether or not to do SSL key validation when making requests to the
|
||||
registry via https.
|
||||
|
||||
See also the `ca` config.
|
||||
|
||||
### tag
|
||||
|
||||
* Default: latest
|
||||
* Type: String
|
||||
|
||||
If you ask npm to install a package and don't tell it a specific version, then
|
||||
it will install the specified tag.
|
||||
|
||||
Also the tag that is added to the package@version specified by the `npm
|
||||
tag` command, if no explicit tag is given.
|
||||
|
||||
### tmp
|
||||
|
||||
* Default: TMPDIR environment variable, or "/tmp"
|
||||
* Type: path
|
||||
|
||||
Where to store temporary files and folders. All temp files are deleted
|
||||
on success, but left behind on failure for forensic purposes.
|
||||
|
||||
### unicode
|
||||
|
||||
* Default: true
|
||||
* Type: Boolean
|
||||
|
||||
When set to true, npm uses unicode characters in the tree output. When
|
||||
false, it uses ascii characters to draw trees.
|
||||
|
||||
### unsafe-perm
|
||||
|
||||
* Default: false if running as root, true otherwise
|
||||
* Type: Boolean
|
||||
|
||||
Set to true to suppress the UID/GID switching when running package
|
||||
scripts. If set explicitly to false, then installing as a non-root user
|
||||
will fail.
|
||||
|
||||
### usage
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
Set to show short usage output (like the -H output)
|
||||
instead of complete help when doing `npm-help(1)`.
|
||||
|
||||
### user
|
||||
|
||||
* Default: "nobody"
|
||||
* Type: String or Number
|
||||
|
||||
The UID to set to when running package scripts as root.
|
||||
|
||||
### username
|
||||
|
||||
* Default: null
|
||||
* Type: String
|
||||
|
||||
The username on the npm registry. Set with `npm adduser`
|
||||
|
||||
### userconfig
|
||||
|
||||
* Default: ~/.npmrc
|
||||
* Type: path
|
||||
|
||||
The location of user-level configuration settings.
|
||||
|
||||
### userignorefile
|
||||
|
||||
* Default: ~/.npmignore
|
||||
* Type: path
|
||||
|
||||
The location of a user-level ignore file to apply to all packages.
|
||||
|
||||
If not found, but there is a .gitignore file in the same directory, then
|
||||
that will be used instead.
|
||||
|
||||
### umask
|
||||
|
||||
* Default: 022
|
||||
* Type: Octal numeric string
|
||||
|
||||
The "umask" value to use when setting the file creation mode on files
|
||||
and folders.
|
||||
|
||||
Folders and executables are given a mode which is `0777` masked against
|
||||
this value. Other files are given a mode which is `0666` masked against
|
||||
this value. Thus, the defaults are `0755` and `0644` respectively.
|
||||
|
||||
### version
|
||||
|
||||
* Default: false
|
||||
* Type: boolean
|
||||
|
||||
If true, output the npm version and exit successfully.
|
||||
|
||||
Only relevant when specified explicitly on the command line.
|
||||
|
||||
### viewer
|
||||
|
||||
* Default: "man" on Posix, "browser" on Windows
|
||||
* Type: path
|
||||
|
||||
The program to use to view help content.
|
||||
|
||||
Set to `"browser"` to view html help content in the default web browser.
|
||||
|
||||
### yes
|
||||
|
||||
* Default: null
|
||||
* Type: Boolean or null
|
||||
|
||||
If set to `null`, then prompt the user for responses in some
|
||||
circumstances.
|
||||
|
||||
If set to `true`, then answer "yes" to any prompt. If set to `false`
|
||||
then answer "no" to any prompt.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-folders(1)
|
||||
* npm(1)
|
24
deps/npm/doc/cli/deprecate.md
vendored
Normal file
24
deps/npm/doc/cli/deprecate.md
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
npm-deprecate(1) -- Deprecate a version of a package
|
||||
====================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm deprecate <name>[@<version>] <message>
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command will update the npm registry entry for a package, providing
|
||||
a deprecation warning to all who attempt to install it.
|
||||
|
||||
It works on version ranges as well as specific versions, so you can do
|
||||
something like this:
|
||||
|
||||
npm deprecate my-thing@"< 0.2.3" "critical bug fixed in v0.2.3"
|
||||
|
||||
Note that you must be the package owner to deprecate something. See the
|
||||
`owner` and `adduser` help topics.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-publish(1)
|
||||
* npm-registry(1)
|
172
deps/npm/doc/cli/developers.md
vendored
Normal file
172
deps/npm/doc/cli/developers.md
vendored
Normal file
@ -0,0 +1,172 @@
|
||||
npm-developers(1) -- Developer Guide
|
||||
====================================
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
So, you've decided to use npm to develop (and maybe publish/deploy)
|
||||
your project.
|
||||
|
||||
Fantastic!
|
||||
|
||||
There are a few things that you need to do above the simple steps
|
||||
that your users will do to install your program.
|
||||
|
||||
## About These Documents
|
||||
|
||||
These are man pages. If you install npm, you should be able to
|
||||
then do `man npm-thing` to get the documentation on a particular
|
||||
topic, or `npm help thing` to see the same information.
|
||||
|
||||
## What is a `package`
|
||||
|
||||
A package is:
|
||||
|
||||
* a) a folder containing a program described by a package.json file
|
||||
* b) a gzipped tarball containing (a)
|
||||
* c) a url that resolves to (b)
|
||||
* d) a `<name>@<version>` that is published on the registry with (c)
|
||||
* e) a `<name>@<tag>` that points to (d)
|
||||
* f) a `<name>` that has a "latest" tag satisfying (e)
|
||||
|
||||
Even if you never publish your package, you can still get a lot of
|
||||
benefits of using npm if you just want to write a node program (a), and
|
||||
perhaps if you also want to be able to easily install it elsewhere
|
||||
after packing it up into a tarball (b).
|
||||
|
||||
## The package.json File
|
||||
|
||||
You need to have a `package.json` file in the root of your project to do
|
||||
much of anything with npm. That is basically the whole interface.
|
||||
|
||||
See `npm-json(1)` for details about what goes in that file. At the very
|
||||
least, you need:
|
||||
|
||||
* name:
|
||||
This should be a string that identifies your project. Please do not
|
||||
use the name to specify that it runs on node, or is in JavaScript.
|
||||
You can use the "engines" field to explicitly state the versions of
|
||||
node (or whatever else) that your program requires, and it's pretty
|
||||
well assumed that it's javascript.
|
||||
|
||||
It does not necessarily need to match your github repository name.
|
||||
|
||||
So, `node-foo` and `bar-js` are bad names. `foo` or `bar` are better.
|
||||
|
||||
* version:
|
||||
A semver-compatible version.
|
||||
|
||||
* engines:
|
||||
Specify the versions of node (or whatever else) that your program
|
||||
runs on. The node API changes a lot, and there may be bugs or new
|
||||
functionality that you depend on. Be explicit.
|
||||
|
||||
* author:
|
||||
Take some credit.
|
||||
|
||||
* scripts:
|
||||
If you have a special compilation or installation script, then you
|
||||
should put it in the `scripts` hash. You should definitely have at
|
||||
least a basic smoke-test command as the "scripts.test" field.
|
||||
See npm-scripts(1).
|
||||
|
||||
* main:
|
||||
If you have a single module that serves as the entry point to your
|
||||
program (like what the "foo" package gives you at require("foo")),
|
||||
then you need to specify that in the "main" field.
|
||||
|
||||
* directories:
|
||||
This is a hash of folders. The best ones to include are "lib" and
|
||||
"doc", but if you specify a folder full of man pages in "man", then
|
||||
they'll get installed just like these ones.
|
||||
|
||||
You can use `npm init` in the root of your package in order to get you
|
||||
started with a pretty basic package.json file. See `npm-init(1)` for
|
||||
more info.
|
||||
|
||||
## Keeping files *out* of your package
|
||||
|
||||
Use a `.npmignore` file to keep stuff out of your package. If there's
|
||||
no .npmignore file, but there *is* a .gitignore file, then npm will
|
||||
ignore the stuff matched by the .gitignore file. If you *want* to
|
||||
include something that is excluded by your .gitignore file, you can
|
||||
create an empty .npmignore file to override it.
|
||||
|
||||
## Link Packages
|
||||
|
||||
`npm link` is designed to install a development package and see the
|
||||
changes in real time without having to keep re-installing it. (You do
|
||||
need to either re-link or `npm rebuild -g` to update compiled packages,
|
||||
of course.)
|
||||
|
||||
More info at `npm-link(1)`.
|
||||
|
||||
## Before Publishing: Make Sure Your Package Installs and Works
|
||||
|
||||
**This is important.**
|
||||
|
||||
If you can not install it locally, you'll have
|
||||
problems trying to publish it. Or, worse yet, you'll be able to
|
||||
publish it, but you'll be publishing a broken or pointless package.
|
||||
So don't do that.
|
||||
|
||||
In the root of your package, do this:
|
||||
|
||||
npm install . -g
|
||||
|
||||
That'll show you that it's working. If you'd rather just create a symlink
|
||||
package that points to your working directory, then do this:
|
||||
|
||||
npm link
|
||||
|
||||
Use `npm ls -g` to see if it's there.
|
||||
|
||||
To test a local install, go into some other folder, and then do:
|
||||
|
||||
cd ../some-other-folder
|
||||
npm install ../my-package
|
||||
|
||||
to install it locally into the node_modules folder in that other place.
|
||||
|
||||
Then go into the node-repl, and try using require("my-thing") to
|
||||
bring in your module's main module.
|
||||
|
||||
## Create a User Account
|
||||
|
||||
Create a user with the adduser command. It works like this:
|
||||
|
||||
npm adduser
|
||||
|
||||
and then follow the prompts.
|
||||
|
||||
This is documented better in npm-adduser(1).
|
||||
|
||||
## Publish your package
|
||||
|
||||
This part's easy. IN the root of your folder, do this:
|
||||
|
||||
npm publish
|
||||
|
||||
You can give publish a url to a tarball, or a filename of a tarball,
|
||||
or a path to a folder.
|
||||
|
||||
Note that pretty much **everything in that folder will be exposed**
|
||||
by default. So, if you have secret stuff in there, use a `.npminclude`
|
||||
or `.npmignore` file to list out the globs to include/ignore, or publish
|
||||
from a fresh checkout.
|
||||
|
||||
## Brag about it
|
||||
|
||||
Send emails, write blogs, blab in IRC.
|
||||
|
||||
Tell the world how easy it is to install your program!
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-faq(1)
|
||||
* npm(1)
|
||||
* npm-init(1)
|
||||
* npm-json(1)
|
||||
* npm-scripts(1)
|
||||
* npm-publish(1)
|
||||
* npm-adduser(1)
|
||||
* npm-registry(1)
|
38
deps/npm/doc/cli/docs.md
vendored
Normal file
38
deps/npm/doc/cli/docs.md
vendored
Normal file
@ -0,0 +1,38 @@
|
||||
npm-docs(1) -- Docs for a package in a web browser maybe
|
||||
========================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm docs <pkgname>
|
||||
npm home <pkgname>
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command tries to guess at the likely location of a package's
|
||||
documentation URL, and then tries to open it using the `--browser`
|
||||
config param.
|
||||
|
||||
## CONFIGURATION
|
||||
|
||||
### browser
|
||||
|
||||
* Default: OS X: `"open"`, others: `"google-chrome"`
|
||||
* Type: String
|
||||
|
||||
The browser that is called by the `npm docs` command to open websites.
|
||||
|
||||
### registry
|
||||
|
||||
* Default: https://registry.npmjs.org/
|
||||
* Type: url
|
||||
|
||||
The base URL of the npm package registry.
|
||||
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-view(1)
|
||||
* npm-publish(1)
|
||||
* npm-registry(1)
|
||||
* npm-config(1)
|
||||
* npm-json(1)
|
35
deps/npm/doc/cli/edit.md
vendored
Normal file
35
deps/npm/doc/cli/edit.md
vendored
Normal file
@ -0,0 +1,35 @@
|
||||
npm-edit(1) -- Edit an installed package
|
||||
========================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm edit <name>[@<version>]
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Opens the package folder in the default editor (or whatever you've
|
||||
configured as the npm `editor` config -- see `npm-config(1)`.)
|
||||
|
||||
After it has been edited, the package is rebuilt so as to pick up any
|
||||
changes in compiled packages.
|
||||
|
||||
For instance, you can do `npm install connect` to install connect
|
||||
into your package, and then `npm edit connect` to make a few
|
||||
changes to your locally installed copy.
|
||||
|
||||
## CONFIGURATION
|
||||
|
||||
### editor
|
||||
|
||||
* Default: `EDITOR` environment variable if set, or `"vi"` on Posix,
|
||||
or `"notepad"` on Windows.
|
||||
* Type: path
|
||||
|
||||
The command to run for `npm edit` or `npm config edit`.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-folders(1)
|
||||
* npm-explore(1)
|
||||
* npm-install(1)
|
||||
* npm-config(1)
|
40
deps/npm/doc/cli/explore.md
vendored
Normal file
40
deps/npm/doc/cli/explore.md
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
npm-explore(1) -- Browse an installed package
|
||||
=============================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm explore <name>[@<version>] [ -- <cmd>]
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Spawn a subshell in the directory of the installed package specified.
|
||||
|
||||
If a command is specified, then it is run in the subshell, which then
|
||||
immediately terminates.
|
||||
|
||||
This is particularly handy in the case of git submodules in the
|
||||
`node_modules` folder:
|
||||
|
||||
npm explore some-dependency -- git pull origin master
|
||||
|
||||
Note that the package is *not* automatically rebuilt afterwards, so be
|
||||
sure to use `npm rebuild <pkg>` if you make any changes.
|
||||
|
||||
## CONFIGURATION
|
||||
|
||||
### shell
|
||||
|
||||
* Default: SHELL environment variable, or "bash" on Posix, or "cmd" on
|
||||
Windows
|
||||
* Type: path
|
||||
|
||||
The shell to run for the `npm explore` command.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-submodule(1)
|
||||
* npm-folders(1)
|
||||
* npm-edit(1)
|
||||
* npm-rebuild(1)
|
||||
* npm-build(1)
|
||||
* npm-install(1)
|
223
deps/npm/doc/cli/faq.md
vendored
Normal file
223
deps/npm/doc/cli/faq.md
vendored
Normal file
@ -0,0 +1,223 @@
|
||||
npm-faq(1) -- Frequently Asked Questions
|
||||
========================================
|
||||
|
||||
## Where can I find these docs in HTML?
|
||||
|
||||
<http://npmjs.org/doc/>, or run:
|
||||
|
||||
npm config set viewer browser
|
||||
|
||||
to open these documents in your default web browser rather than `man`.
|
||||
|
||||
## It didn't work.
|
||||
|
||||
That's not really a question.
|
||||
|
||||
## Why didn't it work?
|
||||
|
||||
I don't know yet.
|
||||
|
||||
Read the error output, and if you can't figure out what it means,
|
||||
do what it says and post a bug with all the information it asks for.
|
||||
|
||||
## Where does npm put stuff?
|
||||
|
||||
See `npm-folders(1)`
|
||||
|
||||
tl;dr:
|
||||
|
||||
* Use the `npm root` command to see where modules go, and the `npm bin`
|
||||
command to see where executables go
|
||||
* Global installs are different from local installs. If you install
|
||||
something with the `-g` flag, then its executables go in `npm bin -g`
|
||||
and its modules go in `npm root -g`.
|
||||
|
||||
## How do I install something everywhere?
|
||||
|
||||
Install it globally by tacking `-g` or `--global` to the command.
|
||||
|
||||
## I installed something globally, but I can't `require()` it
|
||||
|
||||
Install it locally.
|
||||
|
||||
## I don't wanna.
|
||||
|
||||
Check out `npm link`. You might like it.
|
||||
|
||||
## No, I really want 0.x style 'everything global' style.
|
||||
|
||||
Ok, fine. Do this:
|
||||
|
||||
echo 'export NODE_PATH="'$(npm root -g)'"' >> ~/.bashrc
|
||||
. ~/.bashrc
|
||||
npm config set global true
|
||||
|
||||
This is not recommended.
|
||||
|
||||
Many things **will not work** if you do this. Make sure you read and
|
||||
understand `npm-config(1)` and `npm-global(1)` before you complain
|
||||
about things being broken.
|
||||
|
||||
When you realize what a mistake it was, do this to switch back:
|
||||
|
||||
npm config delete global --local
|
||||
|
||||
## If 'npm' is an acronym, why is it never capitalized?
|
||||
|
||||
Contrary to the belief of many, "npm" is not in fact an abbreviation for
|
||||
"Node Package Manager". It is a recursive bacronymic abbreviation for
|
||||
"npm is not an acronym". (If it was "ninaa", then it would be an
|
||||
acronym, and thus incorrectly named.)
|
||||
|
||||
"NPM", however, *is* an acronym (more precisely, a capitonym) for the
|
||||
National Association of Pastoral Musicians. You can learn more
|
||||
about them at <http://npm.org/>.
|
||||
|
||||
In software, "NPM" is a non-parametric mapping utility written by
|
||||
Chris Rorden. You can analyze pictures of brains with it. Learn more
|
||||
about the (capitalized) NPM program at <http://www.cabiatl.com/mricro/npm/>.
|
||||
|
||||
The first seed that eventually grew into this flower was a bash utility
|
||||
named "pm", which was a shortened descendent of "pkgmakeinst", a
|
||||
bash function that was used to install various different things on different
|
||||
platforms, most often using Yahoo's `yinst`. If `npm` was ever an
|
||||
acronym for anything, it was `node pm` or maybe `new pm`.
|
||||
|
||||
So, in all seriousness, the "npm" project is named after its command-line
|
||||
utility, which was organically selected to be easily typed by a right-handed
|
||||
programmer using a US QWERTY keyboard layout, ending with the
|
||||
right-ring-finger in a postition to type the `-` key for flags and
|
||||
other command-line arguments. That command-line utility is always
|
||||
lower-case, though it starts most sentences it is a part of.
|
||||
|
||||
## How do I list installed packages?
|
||||
|
||||
`npm ls`
|
||||
|
||||
## How do I search for packages?
|
||||
|
||||
`npm search`
|
||||
|
||||
Arguments are greps. `npm search jsdom` shows jsdom packages.
|
||||
|
||||
## How do I update npm?
|
||||
|
||||
npm update npm -g
|
||||
|
||||
You can also update all outdated local packages by doing `npm update` without
|
||||
any arguments, or global packages by doing `npm update -g`.
|
||||
|
||||
Occasionally, the version of npm will progress such that the current
|
||||
version cannot be properly installed with the version that you have
|
||||
installed already. (Consider, if there is ever a bug in the `update`
|
||||
command.)
|
||||
|
||||
In those cases, you can do this:
|
||||
|
||||
curl http://npmjs.org/install.sh | sh
|
||||
|
||||
## What is a `package`?
|
||||
|
||||
A package is:
|
||||
|
||||
* a) a folder containing a program described by a package.json file
|
||||
* b) a gzipped tarball containing (a)
|
||||
* c) a url that resolves to (b)
|
||||
* d) a `<name>@<version>` that is published on the registry with (c)
|
||||
* e) a `<name>@<tag>` that points to (d)
|
||||
* f) a `<name>` that has a "latest" tag satisfying (e)
|
||||
* g) a `git` url that, when cloned, results in (a).
|
||||
|
||||
Even if you never publish your package, you can still get a lot of
|
||||
benefits of using npm if you just want to write a node program (a), and
|
||||
perhaps if you also want to be able to easily install it elsewhere
|
||||
after packing it up into a tarball (b).
|
||||
|
||||
Git urls can be of the form:
|
||||
|
||||
git://github.com/user/project.git#commit-ish
|
||||
git+ssh://user@hostname:project.git#commit-ish
|
||||
git+http://user@hostname/project/blah.git#commit-ish
|
||||
git+https://user@hostname/project/blah.git#commit-ish
|
||||
|
||||
The `commit-ish` can be any tag, sha, or branch which can be supplied as
|
||||
an argument to `git checkout`. The default is `master`.
|
||||
|
||||
## How do I install node with npm?
|
||||
|
||||
You don't. Try one of these:
|
||||
|
||||
* <http://github.com/isaacs/nave>
|
||||
* <http://github.com/visionmedia/n>
|
||||
* <http://github.com/creationix/nvm>
|
||||
|
||||
## How can I use npm for development?
|
||||
|
||||
See `npm-developers(1)` and `npm-json(1)`.
|
||||
|
||||
You'll most likely want to `npm link` your development folder. That's
|
||||
awesomely handy.
|
||||
|
||||
To set up your own private registry, check out `npm-registry(1)`.
|
||||
|
||||
## Can I list a url as a dependency?
|
||||
|
||||
Yes. It should be a url to a gzipped tarball containing a single folder
|
||||
that has a package.json in its root, or a git url.
|
||||
(See "what is a package?" above.)
|
||||
|
||||
## How do I symlink to a dev folder so I don't have to keep re-installing?
|
||||
|
||||
See `npm-link(1)`
|
||||
|
||||
## The package registry website. What is that exactly?
|
||||
|
||||
See `npm-registry(1)`.
|
||||
|
||||
## What's up with the insecure channel warnings?
|
||||
|
||||
Until node 0.4.10, there were problems sending big files over HTTPS. That
|
||||
means that publishes go over HTTP by default in those versions of node.
|
||||
|
||||
## I forgot my password, and can't publish. How do I reset it?
|
||||
|
||||
Go to <http://admin.npmjs.org/reset>.
|
||||
|
||||
## I get ECONNREFUSED a lot. What's up?
|
||||
|
||||
Either the registry is down, or node's DNS isn't able to reach out.
|
||||
This happens a lot if you don't follow *all* the steps in the Cygwin
|
||||
setup doc.
|
||||
|
||||
To check if the registry is down, open up
|
||||
<http://registry.npmjs.org/-/short>
|
||||
in a web browser. This will also tell you if you are just unable to
|
||||
access the internet for some reason.
|
||||
|
||||
If the registry IS down, let me know by emailing or posting an issue.
|
||||
We'll have someone kick it or something.
|
||||
|
||||
## Who does npm?
|
||||
|
||||
`npm view npm author`
|
||||
|
||||
`npm view npm contributors`
|
||||
|
||||
## I have a question or request not addressed here. Where should I put it?
|
||||
|
||||
Discuss it on the mailing list, or post an issue.
|
||||
|
||||
* <npm-@googlegroups.com>
|
||||
* <http://github.com/isaacs/npm/issues>
|
||||
|
||||
## Why does npm hate me?
|
||||
|
||||
npm is not capable of hatred. It loves everyone, especially you.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm(1)
|
||||
* npm-developers(1)
|
||||
* npm-json(1)
|
||||
* npm-config(1)
|
||||
* npm-folders(1)
|
1
deps/npm/doc/cli/find.md
vendored
Symbolic link
1
deps/npm/doc/cli/find.md
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
search.md
|
209
deps/npm/doc/cli/folders.md
vendored
Normal file
209
deps/npm/doc/cli/folders.md
vendored
Normal file
@ -0,0 +1,209 @@
|
||||
npm-folders(1) -- Folder Structures Used by npm
|
||||
===============================================
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
npm puts various things on your computer. That's its job.
|
||||
|
||||
This document will tell you what it puts where.
|
||||
|
||||
### tl;dr
|
||||
|
||||
* Local install (default): puts stuff in `./node_modules` of the current
|
||||
package root.
|
||||
* Global install (with `-g`): puts stuff in /usr/local or wherever node
|
||||
is installed.
|
||||
* Install it **locally** if you're going to `require()` it.
|
||||
* Install it **globally** if you're going to run it on the command line.
|
||||
* If you need both, then install it in both places, or use `npm link`.
|
||||
|
||||
### prefix Configuration
|
||||
|
||||
The `prefix` config defaults to the location where node is installed.
|
||||
On most systems, this is `/usr/local`, and most of the time is the same
|
||||
as node's `process.installPrefix`.
|
||||
|
||||
On windows, this is the exact location of the node.exe binary. On Unix
|
||||
systems, it's one level up, since node is typically installed at
|
||||
`{prefix}/bin/node` rather than `{prefix}/node.exe`.
|
||||
|
||||
When the `global` flag is set, npm installs things into this prefix.
|
||||
When it is not set, it uses the root of the current package, or the
|
||||
current working directory if not in a package already.
|
||||
|
||||
### Node Modules
|
||||
|
||||
Packages are dropped into the `node_modules` folder under the `prefix`.
|
||||
When installing locally, this means that you can
|
||||
`require("packagename")` to load its main module, or
|
||||
`require("packagename/lib/path/to/sub/module")` to load other modules.
|
||||
|
||||
Global installs on Unix systems go to `{prefix}/lib/node_modules`.
|
||||
Global installs on Windows go to `{prefix}/node_modules` (that is, no
|
||||
`lib` folder.)
|
||||
|
||||
If you wish to `require()` a package, then install it locally.
|
||||
|
||||
### Executables
|
||||
|
||||
When in global mode, executables are linked into `{prefix}/bin` on Unix,
|
||||
or directly into `{prefix}` on Windows.
|
||||
|
||||
When in local mode, executables are linked into
|
||||
`./node_modules/.bin` so that they can be made available to scripts run
|
||||
through npm. (For example, so that a test runner will be in the path
|
||||
when you run `npm test`.)
|
||||
|
||||
### Man Pages
|
||||
|
||||
When in global mode, man pages are linked into `{prefix}/share/man`.
|
||||
|
||||
When in local mode, man pages are not installed.
|
||||
|
||||
Man pages are not installed on Windows systems.
|
||||
|
||||
### Cache
|
||||
|
||||
See `npm-cache(1)`. Cache files are stored in `~/.npm` on Posix, or
|
||||
`~/npm-cache` on Windows.
|
||||
|
||||
This is controlled by the `cache` configuration param.
|
||||
|
||||
### Temp Files
|
||||
|
||||
Temporary files are stored by default in the folder specified by the
|
||||
`tmp` config, which defaults to the TMPDIR, TMP, or TEMP environment
|
||||
variables, or `/tmp` on Unix and `c:\windows\temp` on Windows.
|
||||
|
||||
Temp files are given a unique folder under this root for each run of the
|
||||
program, and are deleted upon successful exit.
|
||||
|
||||
## More Information
|
||||
|
||||
When installing locally, npm first tries to find an appropriate
|
||||
`prefix` folder. This is so that `npm install foo@1.2.3` will install
|
||||
to the sensible root of your package, even if you happen to have `cd`ed
|
||||
into some other folder.
|
||||
|
||||
Starting at the $PWD, npm will walk up the folder tree checking for a
|
||||
folder that contains either a `package.json` file, or a `node_modules`
|
||||
folder. If such a thing is found, then that is treated as the effective
|
||||
"current directory" for the purpose of running npm commands. (This
|
||||
behavior is inspired by and similar to git's .git-folder seeking
|
||||
logic when running git commands in a working dir.)
|
||||
|
||||
If no package root is found, then the current folder is used.
|
||||
|
||||
When you run `npm install foo@1.2.3`, then the package is loaded into
|
||||
the cache, and then unpacked into `./node_modules/foo`. Then, any of
|
||||
foo's dependencies are similarly unpacked into
|
||||
`./node_modules/foo/node_modules/...`.
|
||||
|
||||
Any bin files are symlinked to `./node_modules/.bin/`, so that they may
|
||||
be found by npm scripts when necessary.
|
||||
|
||||
### Global Installation
|
||||
|
||||
If the `global` configuration is set to true, then npm will
|
||||
install packages "globally".
|
||||
|
||||
For global installation, packages are installed roughly the same way,
|
||||
but using the folders described above.
|
||||
|
||||
### Cycles, Conflicts, and Folder Parsimony
|
||||
|
||||
Cycles are handled using the property of node's module system that it
|
||||
walks up the directories looking for `node_modules` folders. So, at every
|
||||
stage, if a package is already installed in an ancestor `node_modules`
|
||||
folder, then it is not installed at the current location.
|
||||
|
||||
Consider the case above, where `foo -> bar -> baz`. Imagine if, in
|
||||
addition to that, baz depended on bar, so you'd have:
|
||||
`foo -> bar -> baz -> bar -> baz ...`. However, since the folder
|
||||
structure is: `foo/node_modules/bar/node_modules/baz`, there's no need to
|
||||
put another copy of bar into `.../baz/node_modules`, since when it calls
|
||||
require("bar"), it will get the copy that is installed in
|
||||
`foo/node_modules/bar`.
|
||||
|
||||
This shortcut is only used if the exact same
|
||||
version would be installed in multiple nested `node_modules` folders. It
|
||||
is still possible to have `a/node_modules/b/node_modules/a` if the two
|
||||
"a" packages are different versions. However, without repeating the
|
||||
exact same package multiple times, an infinite regress will always be
|
||||
prevented.
|
||||
|
||||
Another optimization can be made by installing dependencies at the
|
||||
highest level possible, below the localized "target" folder.
|
||||
|
||||
#### Example
|
||||
|
||||
Consider this dependency graph:
|
||||
|
||||
foo
|
||||
+-- blerg@1.2.5
|
||||
+-- bar@1.2.3
|
||||
| +-- blerg@1.x (latest=1.3.7)
|
||||
| +-- baz@2.x
|
||||
| | `-- quux@3.x
|
||||
| | `-- bar@1.2.3 (cycle)
|
||||
| `-- asdf@*
|
||||
`-- baz@1.2.3
|
||||
`-- quux@3.x
|
||||
`-- bar
|
||||
|
||||
In this case, we might expect a folder structure like this:
|
||||
|
||||
foo
|
||||
+-- node_modules
|
||||
+-- blerg (1.2.5) <---[A]
|
||||
+-- bar (1.2.3) <---[B]
|
||||
| +-- node_modules
|
||||
| | `-- baz (2.0.2) <---[C]
|
||||
| | `-- node_modules
|
||||
| | `-- quux (3.2.0)
|
||||
| `-- asdf (2.3.4)
|
||||
`-- baz (1.2.3) <---[D]
|
||||
`-- node_modules
|
||||
`-- quux (3.2.0) <---[E]
|
||||
|
||||
Since foo depends directly on bar@1.2.3 and baz@1.2.3, those are
|
||||
installed in foo's `node_modules` folder.
|
||||
|
||||
Even though the latest copy of blerg is 1.3.7, foo has a specific
|
||||
dependency on version 1.2.5. So, that gets installed at [A]. Since the
|
||||
parent installation of blerg satisfie's bar's dependency on blerg@1.x,
|
||||
it does not install another copy under [B].
|
||||
|
||||
Bar [B] also has dependencies on baz and asdf, so those are installed in
|
||||
bar's `node_modules` folder. Because it depends on `baz@2.x`, it cannot
|
||||
re-use the `baz@1.2.3` installed in the parent `node_modules` folder [D],
|
||||
and must install its own copy [C].
|
||||
|
||||
Underneath bar, the `baz->quux->bar` dependency creates a cycle.
|
||||
However, because `bar` is already in `quux`'s ancestry [B], it does not
|
||||
unpack another copy of bar into that folder.
|
||||
|
||||
Underneath `foo->baz` [D], quux's [E] folder tree is empty, because its
|
||||
dependency on bar is satisfied by the parent folder copy installed at [B].
|
||||
|
||||
For a graphical breakdown of what is installed where, use `npm ls`.
|
||||
|
||||
### Publishing
|
||||
|
||||
Upon publishing, npm will look in the `node_modules` folder. If any of
|
||||
the items there are not in the `bundledDependencies` array, then they will
|
||||
not be included in the package tarball.
|
||||
|
||||
This allows a package maintainer to install all of their dependencies
|
||||
(and dev dependencies) locally, but only re-publish those items that
|
||||
cannot be found elsewhere. See `npm-json(1)` for more information.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-faq(1)
|
||||
* npm-json(1)
|
||||
* npm-install(1)
|
||||
* npm-pack(1)
|
||||
* npm-cache(1)
|
||||
* npm-config(1)
|
||||
* npm-publish(1)
|
1
deps/npm/doc/cli/get.md
vendored
Symbolic link
1
deps/npm/doc/cli/get.md
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
config.md
|
1
deps/npm/doc/cli/global.md
vendored
Symbolic link
1
deps/npm/doc/cli/global.md
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
folders.md
|
35
deps/npm/doc/cli/help-search.md
vendored
Normal file
35
deps/npm/doc/cli/help-search.md
vendored
Normal file
@ -0,0 +1,35 @@
|
||||
npm-help-search(1) -- Search npm help documentation
|
||||
===================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm help-search some search terms
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command will search the npm markdown documentation files for the
|
||||
terms provided, and then list the results, sorted by relevance.
|
||||
|
||||
If only one result is found, then it will show that help topic.
|
||||
|
||||
If the argument to `npm help` is not a known help topic, then it will
|
||||
call `help-search`. It is rarely if ever necessary to call this
|
||||
command directly.
|
||||
|
||||
## CONFIGURATION
|
||||
|
||||
### long
|
||||
|
||||
* Type: Boolean
|
||||
* Default false
|
||||
|
||||
If true, the "long" flag will cause help-search to output context around
|
||||
where the terms were found in the documentation.
|
||||
|
||||
If false, then help-search will just list out the help topics found.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm(1)
|
||||
* npm-faq(1)
|
||||
* npm-help(1)
|
38
deps/npm/doc/cli/help.md
vendored
Normal file
38
deps/npm/doc/cli/help.md
vendored
Normal file
@ -0,0 +1,38 @@
|
||||
npm-help(1) -- Get help on npm
|
||||
==============================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm help <topic>
|
||||
npm help some search terms
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
If supplied a topic, then show the appropriate documentation page.
|
||||
|
||||
If the topic does not exist, or if multiple terms are provided, then run
|
||||
the `help-search` command to find a match. Note that, if `help-search`
|
||||
finds a single subject, then it will run `help` on that topic, so unique
|
||||
matches are equivalent to specifying a topic name.
|
||||
|
||||
## CONFIGURATION
|
||||
|
||||
### viewer
|
||||
|
||||
* Default: "man" on Posix, "browser" on Windows
|
||||
* Type: path
|
||||
|
||||
The program to use to view help content.
|
||||
|
||||
Set to `"browser"` to view html help content in the default web browser.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm(1)
|
||||
* README
|
||||
* npm-faq(1)
|
||||
* npm-folders(1)
|
||||
* npm-config(1)
|
||||
* npm-json(1)
|
||||
* npm-help-search(1)
|
||||
* npm-index(1)
|
1
deps/npm/doc/cli/home.md
vendored
Symbolic link
1
deps/npm/doc/cli/home.md
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
docs.md
|
24
deps/npm/doc/cli/init.md
vendored
Normal file
24
deps/npm/doc/cli/init.md
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
npm-init(1) -- Interactively create a package.json file
|
||||
=======================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm init
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This will ask you a bunch of questions, and then write a package.json for you.
|
||||
|
||||
It attempts to make reasonable guesses about what you want things to be set to,
|
||||
and then writes a package.json file with the options you've selected.
|
||||
|
||||
If you already have a package.json file, it'll read that first, and default to
|
||||
the options in there.
|
||||
|
||||
It is strictly additive, so it does not delete options from your package.json
|
||||
without a really good reason to do so.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-json(1)
|
||||
* npm-version(1)
|
201
deps/npm/doc/cli/install.md
vendored
Normal file
201
deps/npm/doc/cli/install.md
vendored
Normal file
@ -0,0 +1,201 @@
|
||||
npm-install(1) -- Install a package
|
||||
===================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm install (with no args in a package dir)
|
||||
npm install <tarball file>
|
||||
npm install <tarball url>
|
||||
npm install <folder>
|
||||
npm install <name>
|
||||
npm install <name>@<tag>
|
||||
npm install <name>@<version>
|
||||
npm install <name>@<version range>
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command installs a package, and any packages that it depends on.
|
||||
|
||||
A `package` is:
|
||||
|
||||
* a) a folder containing a program described by a package.json file
|
||||
* b) a gzipped tarball containing (a)
|
||||
* c) a url that resolves to (b)
|
||||
* d) a `<name>@<version>` that is published on the registry with (c)
|
||||
* e) a `<name>@<tag>` that points to (d)
|
||||
* f) a `<name>` that has a "latest" tag satisfying (e)
|
||||
* g) a `<git remote url>` that resolves to (b)
|
||||
|
||||
Even if you never publish your package, you can still get a lot of
|
||||
benefits of using npm if you just want to write a node program (a), and
|
||||
perhaps if you also want to be able to easily install it elsewhere
|
||||
after packing it up into a tarball (b).
|
||||
|
||||
|
||||
* `npm install` (in package directory, no arguments):
|
||||
Install the dependencies in the local node_modules folder.
|
||||
|
||||
In global mode (ie, with `-g` or `--global` appended to the command),
|
||||
it installs the current package context (ie, the current working
|
||||
directory) as a global package.
|
||||
|
||||
* `npm install <folder>`:
|
||||
Install a package that is sitting in a folder on the filesystem.
|
||||
|
||||
* `npm install <tarball file>`:
|
||||
Install a package that is sitting on the filesystem. Note: if you just want
|
||||
to link a dev directory into your npm root, you can do this more easily by
|
||||
using `npm link`.
|
||||
|
||||
Example:
|
||||
|
||||
npm install ./package.tgz
|
||||
|
||||
* `npm install <tarball url>`:
|
||||
Fetch the tarball url, and then install it. In order to distinguish between
|
||||
this and other options, the argument must start with "http://" or "https://"
|
||||
|
||||
Example:
|
||||
|
||||
npm install https://github.com/indexzero/forever/tarball/v0.5.6
|
||||
|
||||
* `npm install <name>`:
|
||||
Do a `<name>@<tag>` install, where `<tag>` is the "tag" config. (See
|
||||
`npm-config(1)`)
|
||||
|
||||
Example:
|
||||
|
||||
npm install sax
|
||||
|
||||
**Note**: If there is a file or folder named `<name>` in the current
|
||||
working directory, then it will try to install that, and only try to
|
||||
fetch the package by name if it is not valid.
|
||||
|
||||
* `npm install <name>@<tag>`:
|
||||
Install the version of the package that is referenced by the specified tag.
|
||||
If the tag does not exist in the registry data for that package, then this
|
||||
will fail.
|
||||
|
||||
Example:
|
||||
|
||||
npm install sax@latest
|
||||
|
||||
* `npm install <name>@<version>`:
|
||||
Install the specified version of the package. This will fail if the version
|
||||
has not been published to the registry.
|
||||
|
||||
Example:
|
||||
|
||||
npm install sax@0.1.1
|
||||
|
||||
* `npm install <name>@<version range>`:
|
||||
Install a version of the package matching the specified version range. This
|
||||
will follow the same rules for resolving dependencies described in `npm-json(1)`.
|
||||
|
||||
Note that most version ranges must be put in quotes so that your shell will
|
||||
treat it as a single argument.
|
||||
|
||||
Example:
|
||||
|
||||
npm install sax@">=0.1.0 <0.2.0"
|
||||
|
||||
* `npm install <git remote url>`:
|
||||
|
||||
Install a package by cloning a git remote url. The format of the git
|
||||
url is:
|
||||
|
||||
<protocol>://[<user>@]<hostname><separator><path>[#<commit-ish>]
|
||||
|
||||
`<protocol>` is one of `git`, `git+ssh`, `git+http`, or
|
||||
`git+https`. If no `<commit-ish>` is specified, then `master` is
|
||||
used.
|
||||
|
||||
Examples:
|
||||
|
||||
git+ssh://git@github.com:isaacs/npm.git#v1.0.27
|
||||
git+https://isaacs@github.com/isaacs/npm.git
|
||||
git://github.com/isaacs/npm.git#v1.0.27
|
||||
|
||||
You may combine multiple arguments, and even multiple types of arguments.
|
||||
For example:
|
||||
|
||||
npm install sax@">=0.1.0 <0.2.0" bench supervisor
|
||||
|
||||
The `--tag` argument will apply to all of the specified install targets.
|
||||
|
||||
The `--force` argument will force npm to fetch remote resources even if a
|
||||
local copy exists on disk.
|
||||
|
||||
npm install sax --force
|
||||
|
||||
The `--global` argument will cause npm to install the package globally
|
||||
rather than locally. See `npm-global(1)`.
|
||||
|
||||
The `--link` argument will cause npm to link global installs into the
|
||||
local space in some cases.
|
||||
|
||||
See `npm-config(1)`. Many of the configuration params have some
|
||||
effect on installation, since that's most of what npm does.
|
||||
|
||||
## ALGORITHM
|
||||
|
||||
To install a package, npm uses the following algorithm:
|
||||
|
||||
install(where, what, family, ancestors)
|
||||
fetch what, unpack to <where>/node_modules/<what>
|
||||
for each dep in what.dependencies
|
||||
resolve dep to precise version
|
||||
for each dep@version in what.dependencies
|
||||
not in <where>/node_modules/<what>/node_modules/*
|
||||
and not in <family>
|
||||
add precise version deps to <family>
|
||||
install(<where>/node_modules/<what>, dep, family)
|
||||
|
||||
For this `package{dep}` structure: `A{B,C}, B{C}, C{D}`,
|
||||
this algorithm produces:
|
||||
|
||||
A
|
||||
+-- B
|
||||
`-- C
|
||||
`-- D
|
||||
|
||||
That is, the dependency from B to C is satisfied by the fact that A
|
||||
already caused C to be installed at a higher level.
|
||||
|
||||
See npm-folders(1) for a more detailed description of the specific
|
||||
folder structures that npm creates.
|
||||
|
||||
### Limitations of npm's Install Algorithm
|
||||
|
||||
There are some very rare and pathological edge-cases where a cycle can
|
||||
cause npm to try to install a never-ending tree of packages. Here is
|
||||
the simplest case:
|
||||
|
||||
A -> B -> A' -> B' -> A -> B -> A' -> B' -> A -> ...
|
||||
|
||||
where `A` is some version of a package, and `A'` is a different version
|
||||
of the same package. Because `B` depends on a different version of `A`
|
||||
than the one that is already in the tree, it must install a separate
|
||||
copy. The same is true of `A'`, which must install `B'`. Because `B'`
|
||||
depends on the original version of `A`, which has been overridden, the
|
||||
cycle falls into infinite regress.
|
||||
|
||||
To avoid this situation, npm flat-out refuses to install any
|
||||
`name@version` that is already present anywhere in the tree of package
|
||||
folder ancestors. A more correct, but more complex, solution would be
|
||||
to symlink the existing version into the new location. If this ever
|
||||
affects a real use-case, it will be investigated.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-folders(1)
|
||||
* npm-update(1)
|
||||
* npm-link(1)
|
||||
* npm-rebuild(1)
|
||||
* npm-scripts(1)
|
||||
* npm-build(1)
|
||||
* npm-config(1)
|
||||
* npm-registry(1)
|
||||
* npm-folders(1)
|
||||
* npm-tag(1)
|
||||
* npm-rm(1)
|
472
deps/npm/doc/cli/json.md
vendored
Normal file
472
deps/npm/doc/cli/json.md
vendored
Normal file
@ -0,0 +1,472 @@
|
||||
npm-json(1) -- Specifics of npm's package.json handling
|
||||
=======================================================
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This document is all you need to know about what's required in your package.json
|
||||
file. It must be actual JSON, not just a JavaScript object literal.
|
||||
|
||||
A lot of the behavior described in this document is affected by the config
|
||||
settings described in `npm-config(1)`.
|
||||
|
||||
## DEFAULT VALUES
|
||||
|
||||
npm will default some values based on package contents.
|
||||
|
||||
* `"scripts": {"start": "node server.js"}`
|
||||
|
||||
If there is a `server.js` file in the root of your package, then npm
|
||||
will default the `start` command to `node server.js`.
|
||||
|
||||
* `"scripts":{"preinstall": "node-waf clean || true; node-waf configure build"}`
|
||||
|
||||
If there is a `wscript` file in the root of your package, npm will
|
||||
default the `preinstall` command to compile using node-waf.
|
||||
|
||||
* `"contributors": [...]`
|
||||
|
||||
If there is an `AUTHORS` file in the root of your package, npm will
|
||||
treat each line as a `Name <email> (url)` format, where email and url
|
||||
are optional. Lines which start with a `#` or are blank, will be
|
||||
ignored.
|
||||
|
||||
## name
|
||||
|
||||
The *most* important things in your package.json are the name and version fields.
|
||||
Those are actually required, and your package won't install without
|
||||
them. The name and version together form an identifier that is assumed
|
||||
to be completely unique. Changes to the package should come along with
|
||||
changes to the version.
|
||||
|
||||
The name is what your thing is called. Some tips:
|
||||
|
||||
* Don't put "js" or "node" in the name. It's assumed that it's js, since you're
|
||||
writing a package.json file, and you can specify the engine using the "engines"
|
||||
field. (See below.)
|
||||
* The name ends up being part of a URL, an argument on the command line, and a
|
||||
folder name. Any name with non-url-safe characters will be rejected.
|
||||
Also, it can't start with a dot or an underscore.
|
||||
* The name will probably be passed as an argument to require(), so it should
|
||||
be something short, but also reasonably descriptive.
|
||||
* You may want to check the npm registry to see if there's something by that name
|
||||
already, before you get too attached to it. http://registry.npmjs.org/
|
||||
|
||||
## version
|
||||
|
||||
The *most* important things in your package.json are the name and version fields.
|
||||
Those are actually required, and your package won't install without
|
||||
them. The name and version together form an identifier that is assumed
|
||||
to be completely unique. Changes to the package should come along with
|
||||
changes to the version.
|
||||
|
||||
Version must be parseable by
|
||||
[node-semver](https://github.com/isaacs/node-semver), which is bundled
|
||||
with npm as a dependency. (`npm install semver` to use it yourself.)
|
||||
|
||||
Here's how npm's semver implementation deviates from what's on semver.org:
|
||||
|
||||
* Versions can start with "v"
|
||||
* A numeric item separated from the main three-number version by a hyphen
|
||||
will be interpreted as a "build" number, and will *increase* the version.
|
||||
But, if the tag is not a number separated by a hyphen, then it's treated
|
||||
as a pre-release tag, and is *less than* the version without a tag.
|
||||
So, `0.1.2-7 > 0.1.2-7-beta > 0.1.2-6 > 0.1.2 > 0.1.2beta`
|
||||
|
||||
This is a little bit confusing to explain, but matches what you see in practice
|
||||
when people create tags in git like "v1.2.3" and then do "git describe" to generate
|
||||
a patch version.
|
||||
|
||||
## description
|
||||
|
||||
Put a description in it. It's a string. This helps people discover your
|
||||
package, as it's listed in `npm search`.
|
||||
|
||||
## keywords
|
||||
|
||||
Put keywords in it. It's an array of strings. This helps people
|
||||
discover your package as it's listed in `npm search`.
|
||||
|
||||
## homepage
|
||||
|
||||
The url to the project homepage.
|
||||
|
||||
**NOTE**: This is *not* the same as "url". If you put a "url" field,
|
||||
then the registry will think it's a redirection to your package that has
|
||||
been published somewhere else, and spit at you.
|
||||
|
||||
Literally. Spit. I'm so not kidding.
|
||||
|
||||
## bugs
|
||||
|
||||
The url to your project's issue tracker and / or the email address to which
|
||||
issues should be reported. These are helpful for people who encounter issues
|
||||
with your package.
|
||||
|
||||
It should look like this:
|
||||
|
||||
{ "url" : "http://github.com/owner/project/issues"
|
||||
, "email" : "project@hostname.com"
|
||||
}
|
||||
|
||||
You can specify either one or both values. If you want to provide only a url,
|
||||
you can specify the value for "bugs" as a simple string instead of an object.
|
||||
|
||||
If a url is provided, it will be used by the `npm bugs` command.
|
||||
|
||||
## people fields: author, contributors
|
||||
|
||||
The "author" is one person. "contributors" is an array of people. A "person"
|
||||
is an object with a "name" field and optionally "url" and "email", like this:
|
||||
|
||||
{ "name" : "Barney Rubble"
|
||||
, "email" : "b@rubble.com"
|
||||
, "url" : "http://barnyrubble.tumblr.com/"
|
||||
}
|
||||
|
||||
Or you can shorten that all into a single string, and npm will parse it for you:
|
||||
|
||||
"Barney Rubble <b@rubble.com> (http://barnyrubble.tumblr.com/)
|
||||
|
||||
Both email and url are optional either way.
|
||||
|
||||
npm also sets a top-level "maintainers" field with your npm user info.
|
||||
|
||||
## files
|
||||
|
||||
The "files" field is an array of files to include in your project. If
|
||||
you name a folder in the array, then it will also include the files
|
||||
inside that folder. (Unless they would be ignored by another rule.)
|
||||
|
||||
You can also provide a ".npmignore" file in the root of your package,
|
||||
which will keep files from being included, even if they would be picked
|
||||
up by the files array. The ".npmignore" file works just like a
|
||||
".gitignore".
|
||||
|
||||
## main
|
||||
|
||||
The main field is a module ID that is the primary entry point to your program.
|
||||
That is, if your package is named `foo`, and a user installs it, and then does
|
||||
`require("foo")`, then your main module's exports object will be returned.
|
||||
|
||||
This should be a module ID relative to the root of your package folder.
|
||||
|
||||
For most modules, it makes the most sense to have a main script and often not
|
||||
much else.
|
||||
|
||||
## bin
|
||||
|
||||
A lot of packages have one or more executable files that they'd like to
|
||||
install into the PATH. npm makes this pretty easy (in fact, it uses this
|
||||
feature to install the "npm" executable.)
|
||||
|
||||
To use this, supply a `bin` field in your package.json which is a map of
|
||||
command name to local file name. On install, npm will symlink that file into
|
||||
`prefix/bin` for global installs, or `./node_modules/.bin/` for local
|
||||
installs.
|
||||
|
||||
|
||||
For example, npm has this:
|
||||
|
||||
{ "bin" : { "npm" : "./cli.js" } }
|
||||
|
||||
So, when you install npm, it'll create a symlink from the `cli.js` script to
|
||||
`/usr/local/bin/npm`.
|
||||
|
||||
If you have a single executable, and its name should be the name
|
||||
of the package, then you can just supply it as a string. For example:
|
||||
|
||||
{ "name": "my-program"
|
||||
, "version": "1.2.5"
|
||||
, "bin": "./path/to/program" }
|
||||
|
||||
would be the same as this:
|
||||
|
||||
{ "name": "my-program"
|
||||
, "version": "1.2.5"
|
||||
, "bin" : { "my-program" : "./path/to/program" } }
|
||||
|
||||
## man
|
||||
|
||||
Specify either a single file or an array of filenames to put in place for the
|
||||
`man` program to find.
|
||||
|
||||
If only a single file is provided, then it's installed such that it is the
|
||||
result from `man <pkgname>`, regardless of its actual filename. For example:
|
||||
|
||||
{ "name" : "foo"
|
||||
, "version" : "1.2.3"
|
||||
, "description" : "A packaged foo fooer for fooing foos"
|
||||
, "main" : "foo.js"
|
||||
, "man" : "./man/doc.1"
|
||||
}
|
||||
|
||||
would link the `./man/doc.1` file in such that it is the target for `man foo`
|
||||
|
||||
If the filename doesn't start with the package name, then it's prefixed.
|
||||
So, this:
|
||||
|
||||
{ "name" : "foo"
|
||||
, "version" : "1.2.3"
|
||||
, "description" : "A packaged foo fooer for fooing foos"
|
||||
, "main" : "foo.js"
|
||||
, "man" : [ "./man/foo.1", "./man/bar.1" ]
|
||||
}
|
||||
|
||||
will create files to do `man foo` and `man foo-bar`.
|
||||
|
||||
Man files must end with a number, and optionally a `.gz` suffix if they are
|
||||
compressed. The number dictates which man section the file is installed into.
|
||||
|
||||
{ "name" : "foo"
|
||||
, "version" : "1.2.3"
|
||||
, "description" : "A packaged foo fooer for fooing foos"
|
||||
, "main" : "foo.js"
|
||||
, "man" : [ "./man/foo.1", "./man/foo.2" ]
|
||||
}
|
||||
|
||||
will create entries for `man foo` and `man 2 foo`
|
||||
|
||||
## directories
|
||||
|
||||
The CommonJS [Packages](http://wiki.commonjs.org/wiki/Packages/1.0) spec details a
|
||||
few ways that you can indicate the structure of your package using a `directories`
|
||||
hash. If you look at [npm's package.json](http://registry.npmjs.org/npm/latest),
|
||||
you'll see that it has directories for doc, lib, and man.
|
||||
|
||||
In the future, this information may be used in other creative ways.
|
||||
|
||||
### directories.lib
|
||||
|
||||
Tell people where the bulk of your library is. Nothing special is done
|
||||
with the lib folder in any way, but it's useful meta info.
|
||||
|
||||
### directories.bin
|
||||
|
||||
If you specify a "bin" directory, then all the files in that folder will
|
||||
be used as the "bin" hash.
|
||||
|
||||
If you have a "bin" hash already, then this has no effect.
|
||||
|
||||
### directories.man
|
||||
|
||||
A folder that is full of man pages. Sugar to generate a "man" array by
|
||||
walking the folder.
|
||||
|
||||
### directories.doc
|
||||
|
||||
Put markdown files in here. Eventually, these will be displayed nicely,
|
||||
maybe, someday.
|
||||
|
||||
### directories.example
|
||||
|
||||
Put example scripts in here. Someday, it might be exposed in some clever way.
|
||||
|
||||
## repository
|
||||
|
||||
Specify the place where your code lives. This is helpful for people who
|
||||
want to contribute. If the git repo is on github, then the `npm docs`
|
||||
command will be able to find you.
|
||||
|
||||
Do it like this:
|
||||
|
||||
"repository" :
|
||||
{ "type" : "git"
|
||||
, "url" : "http://github.com/isaacs/npm.git"
|
||||
}
|
||||
|
||||
"repository" :
|
||||
{ "type" : "svn"
|
||||
, "url" : "http://v8.googlecode.com/svn/trunk/"
|
||||
}
|
||||
|
||||
The URL should be a publicly available (perhaps read-only) url that can be handed
|
||||
directly to a VCS program without any modification. It should not be a url to an
|
||||
html project page that you put in your browser. It's for computers.
|
||||
|
||||
## scripts
|
||||
|
||||
The "scripts" member is an object hash of script commands that are run
|
||||
at various times in the lifecycle of your package. The key is the lifecycle
|
||||
event, and the value is the command to run at that point.
|
||||
|
||||
See `npm-scripts(1)` to find out more about writing package scripts.
|
||||
|
||||
## config
|
||||
|
||||
A "config" hash can be used to set configuration
|
||||
parameters used in package scripts that persist across upgrades. For
|
||||
instance, if a package had the following:
|
||||
|
||||
{ "name" : "foo"
|
||||
, "config" : { "port" : "8080" } }
|
||||
|
||||
and then had a "start" command that then referenced the
|
||||
`npm_package_config_port` environment variable, then the user could
|
||||
override that by doing `npm config set foo:port 8001`.
|
||||
|
||||
See `npm-config(1)` and `npm-scripts(1)` for more on package
|
||||
configs.
|
||||
|
||||
## dependencies
|
||||
|
||||
Dependencies are specified with a simple hash of package name to version
|
||||
range. The version range is EITHER a string which has one or more
|
||||
space-separated descriptors, OR a range like "fromVersion - toVersion"
|
||||
|
||||
**Please do not put test harnesses in your `dependencies` hash.** See
|
||||
`devDependencies`, below.
|
||||
|
||||
Version range descriptors may be any of the following styles, where "version"
|
||||
is a semver compatible version identifier.
|
||||
|
||||
* `version` Must match `version` exactly
|
||||
* `=version` Same as just `version`
|
||||
* `>version` Must be greater than `version`
|
||||
* `>=version` etc
|
||||
* `<version`
|
||||
* `<=version`
|
||||
* `~version` See 'Tilde Version Ranges' below
|
||||
* `1.2.x` See 'X Version Ranges' below
|
||||
* `http://...` See 'URLs as Dependencies' below
|
||||
* `*` Matches any version
|
||||
* `""` (just an empty string) Same as `*`
|
||||
* `version1 - version2` Same as `>=version1 <=version2`.
|
||||
* `range1 || range2` Passes if either range1 or range2 are satisfied.
|
||||
|
||||
For example, these are all valid:
|
||||
|
||||
{ "dependencies" :
|
||||
{ "foo" : "1.0.0 - 2.9999.9999"
|
||||
, "bar" : ">=1.0.2 <2.1.2"
|
||||
, "baz" : ">1.0.2 <=2.3.4"
|
||||
, "boo" : "2.0.1"
|
||||
, "qux" : "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0"
|
||||
, "asd" : "http://asdf.com/asdf.tar.gz"
|
||||
, "til" : "~1.2"
|
||||
, "elf" : "~1.2.3"
|
||||
, "two" : "2.x"
|
||||
, "thr" : "3.3.x"
|
||||
}
|
||||
}
|
||||
|
||||
### Tilde Version Ranges
|
||||
|
||||
A range specifier starting with a tilde `~` character is matched against
|
||||
a version in the following fashion.
|
||||
|
||||
* The version must be at least as high as the range.
|
||||
* The version must be less than the next major revision above the range.
|
||||
|
||||
For example, the following are equivalent:
|
||||
|
||||
* `"~1.2.3" = ">=1.2.3 <1.3.0"`
|
||||
* `"~1.2" = ">=1.2.0 <2.0.0"`
|
||||
* `"~1" = ">=1.0.0 <2.0.0"`
|
||||
|
||||
### X Version Ranges
|
||||
|
||||
An "x" in a version range specifies that the version number must start
|
||||
with the supplied digits, but any digit may be used in place of the x.
|
||||
|
||||
The following are equivalent:
|
||||
|
||||
* `"1.2.x" = ">=1.2.0 <1.3.0"`
|
||||
* `"1.x.x" = ">=1.0.0 <2.0.0"`
|
||||
* `"1.2" = "1.2.x"`
|
||||
* `"1.x" = "1.x.x"`
|
||||
* `"1" = "1.x.x"`
|
||||
|
||||
You may not supply a comparator with a version containing an x. Any
|
||||
digits after the first "x" are ignored.
|
||||
|
||||
### URLs as Dependencies
|
||||
|
||||
Starting with npm version 0.2.14, you may specify a tarball URL in place
|
||||
of a version range.
|
||||
|
||||
This tarball will be downloaded and installed locally to your package at
|
||||
install time.
|
||||
|
||||
## devDependencies
|
||||
|
||||
If someone is planning on downloading and using your module in their
|
||||
program, then they probably don't want or need to download and build
|
||||
the external test or documentation framework that you use.
|
||||
|
||||
In this case, it's best to list these additional items in a
|
||||
`devDependencies` hash.
|
||||
|
||||
These things will be installed whenever the `--dev` configuration flag
|
||||
is set. This flag is set automatically when doing `npm link`, and can
|
||||
be managed like any other npm configuration param. See `npm-config(1)`
|
||||
for more on the topic.
|
||||
|
||||
## bundledDependencies
|
||||
|
||||
Array of package names that will be bundled when publishing the package.
|
||||
|
||||
If this is spelled `"bundleDependencies"`, then that is also honorable.
|
||||
|
||||
## engines
|
||||
|
||||
You can specify the version of
|
||||
node that your stuff works on:
|
||||
|
||||
{ "engines" : { "node" : ">=0.1.27 <0.1.30" } }
|
||||
|
||||
And, like with dependencies, if you don't specify the version (or if you
|
||||
specify "*" as the version), then any version of node will do.
|
||||
|
||||
If you specify an "engines" field, then npm will require that "node" be
|
||||
somewhere on that list. If "engines" is omitted, then npm will just assume
|
||||
that it works on node.
|
||||
|
||||
You can also use the "engines" field to specify which versions of npm
|
||||
are capable of properly installing your program. For example:
|
||||
|
||||
{ "engines" : { "npm" : "~1.0.20" } }
|
||||
|
||||
## preferGlobal
|
||||
|
||||
If your package is primarily a command-line application that should be
|
||||
installed globally, then set this value to `true` to provide a warning
|
||||
if it is installed locally.
|
||||
|
||||
It doesn't actually prevent users from installing it locally, but it
|
||||
does help prevent some confusion if it doesn't work as expected.
|
||||
|
||||
## private
|
||||
|
||||
If you set `"private": true` in your package.json, then npm will refuse
|
||||
to publish it.
|
||||
|
||||
This is a way to prevent accidental publication of private repositories.
|
||||
If you would like to ensure that a given package is only ever published
|
||||
to a speciic registry (for example, an internal registry),
|
||||
then use the `publishConfig` hash described below
|
||||
to override the `registry` config param at publish-time.
|
||||
|
||||
## publishConfig
|
||||
|
||||
This is a set of config values that will be used at publish-time. It's
|
||||
especially handy if you want to set the tag or registry, so that you can
|
||||
ensure that a given package is not tagged with "latest" or published to
|
||||
the global public registry by default.
|
||||
|
||||
Any config values can be overridden, but of course only "tag" and
|
||||
"registry" probably matter for the purposes of publishing.
|
||||
|
||||
See `npm-config(1)` to see the list of config options that can be
|
||||
overridden.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-semver(1)
|
||||
* npm-init(1)
|
||||
* npm-version(1)
|
||||
* npm-config(1)
|
||||
* npm-help(1)
|
||||
* npm-faq(1)
|
||||
* npm-install(1)
|
||||
* npm-publish(1)
|
||||
* npm-rm(1)
|
57
deps/npm/doc/cli/link.md
vendored
Normal file
57
deps/npm/doc/cli/link.md
vendored
Normal file
@ -0,0 +1,57 @@
|
||||
npm-link(1) -- Symlink a package folder
|
||||
=======================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm link (in package folder)
|
||||
npm link <pkgname>
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Package linking is a two-step process.
|
||||
|
||||
First, `npm link` in a package folder will create a globally-installed
|
||||
symbolic link from `prefix/package-name` to the current folder.
|
||||
|
||||
Next, in some other location, `npm link package-name` will create a
|
||||
symlink from the local `node_modules` folder to the global symlink.
|
||||
|
||||
When creating tarballs for `npm publish`, the linked packages are
|
||||
"snapshotted" to their current state by resolving the symbolic links.
|
||||
|
||||
This is
|
||||
handy for installing your own stuff, so that you can work on it and test it
|
||||
iteratively without having to continually rebuild.
|
||||
|
||||
For example:
|
||||
|
||||
cd ~/projects/node-redis # go into the package directory
|
||||
npm link # creates global link
|
||||
cd ~/projects/node-bloggy # go into some other package directory.
|
||||
npm link redis # link-install the package
|
||||
|
||||
Now, any changes to ~/projects/node-redis will be reflected in
|
||||
~/projects/node-bloggy/node_modules/redis/
|
||||
|
||||
You may also shortcut the two steps in one. For example, to do the
|
||||
above use-case in a shorter way:
|
||||
|
||||
cd ~/projects/node-bloggy # go into the dir of your main project
|
||||
npm link ../node-redis # link the dir of your dependency
|
||||
|
||||
The second line is the equivalent of doing:
|
||||
|
||||
(cd ../node-redis; npm link)
|
||||
npm link redis
|
||||
|
||||
That is, it first creates a global link, and then links the global
|
||||
installation target into your project's `node_modules` folder.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-developers(1)
|
||||
* npm-faq(1)
|
||||
* npm-json(1)
|
||||
* npm-install(1)
|
||||
* npm-folders(1)
|
||||
* npm-config(1)
|
55
deps/npm/doc/cli/list.md
vendored
Normal file
55
deps/npm/doc/cli/list.md
vendored
Normal file
@ -0,0 +1,55 @@
|
||||
npm-ls(1) -- List installed packages
|
||||
======================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm list
|
||||
npm ls
|
||||
npm la
|
||||
npm ll
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command will print to stdout all the versions of packages that are
|
||||
installed, as well as their dependencies, in a tree-structure.
|
||||
|
||||
It does not take positional arguments, though you may set config flags
|
||||
like with any other command, such as `-g` to list global packages.
|
||||
|
||||
It will print out extraneous, missing, and invalid packages.
|
||||
|
||||
When run as `ll` or `la`, it shows extended information by default.
|
||||
|
||||
## CONFIGURATION
|
||||
|
||||
### long
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
Show extended information.
|
||||
|
||||
### parseable
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
Show parseable output instead of tree view.
|
||||
|
||||
### global
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
List packages in the global install prefix instead of in the current
|
||||
project.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-config(1)
|
||||
* npm-folders(1)
|
||||
* npm-install(1)
|
||||
* npm-link(1)
|
||||
* npm-prune(1)
|
||||
* npm-outdated(1)
|
||||
* npm-update(1)
|
1
deps/npm/doc/cli/ln.md
vendored
Symbolic link
1
deps/npm/doc/cli/ln.md
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
link.md
|
1
deps/npm/doc/cli/ls.md
vendored
Symbolic link
1
deps/npm/doc/cli/ls.md
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
list.md
|
155
deps/npm/doc/cli/npm.md
vendored
Normal file
155
deps/npm/doc/cli/npm.md
vendored
Normal file
@ -0,0 +1,155 @@
|
||||
npm(1) -- node package manager
|
||||
==============================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm <command> [args]
|
||||
|
||||
## VERSION
|
||||
|
||||
@VERSION@
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
npm is the package manager for the Node JavaScript platform. It puts
|
||||
modules in place so that node can find them, and manages dependency
|
||||
conflicts intelligently.
|
||||
|
||||
It is extremely configurable to support a wide variety of use cases.
|
||||
Most commonly, it is used to publish, discover, install, and develop node
|
||||
programs.
|
||||
|
||||
Run `npm help` to get a list of available commands.
|
||||
|
||||
## INTRODUCTION
|
||||
|
||||
You probably got npm because you want to install stuff.
|
||||
|
||||
Use `npm install blerg` to install the latest version of "blerg". Check out
|
||||
`npm-install(1)` for more info. It can do a lot of stuff.
|
||||
|
||||
Use the `npm search` command to show everything that's available.
|
||||
Use `npm ls` to show everything you've installed.
|
||||
|
||||
## DIRECTORIES
|
||||
|
||||
See `npm-folders(1)` to learn about where npm puts stuff.
|
||||
|
||||
In particular, npm has two modes of operation:
|
||||
|
||||
* global mode:
|
||||
npm installs packages into the install prefix at
|
||||
`prefix/lib/node_modules` and bins are installed in `prefix/bin`.
|
||||
* local mode:
|
||||
npm installs packages into the current project directory, which
|
||||
defaults to the current working directory. Packages are installed to
|
||||
`./node_modules`, and bins are installed to `./node_modules/.bin`.
|
||||
|
||||
Local mode is the default. Use `--global` or `-g` on any command to
|
||||
operate in global mode instead.
|
||||
|
||||
## DEVELOPER USAGE
|
||||
|
||||
If you're using npm to develop and publish your code, check out the
|
||||
following help topics:
|
||||
|
||||
* json:
|
||||
Make a package.json file. See `npm-json(1)`.
|
||||
* link:
|
||||
For linking your current working code into Node's path, so that you
|
||||
don't have to reinstall every time you make a change. Use
|
||||
`npm link` to do this.
|
||||
* install:
|
||||
It's a good idea to install things if you don't need the symbolic link.
|
||||
Especially, installing other peoples code from the registry is done via
|
||||
`npm install`
|
||||
* adduser:
|
||||
Create an account or log in. Creditials are stored in the
|
||||
user config file.
|
||||
* publish:
|
||||
Use the `npm publish` command to upload your code to the registry.
|
||||
|
||||
## CONFIGURATION
|
||||
|
||||
npm is extremely configurable. It reads its configuration options from
|
||||
5 places.
|
||||
|
||||
* Command line switches:
|
||||
Set a config with `--key val`. All keys take a value, even if they
|
||||
are booleans (the config parser doesn't know what the options are at
|
||||
the time of parsing.) If no value is provided, then the option is set
|
||||
to boolean `true`.
|
||||
* Environment Variables:
|
||||
Set any config by prefixing the name in an environment variable with
|
||||
`npm_config_`. For example, `export npm_config_key=val`.
|
||||
* User Configs:
|
||||
The file at $HOME/.npmrc is an ini-formatted list of configs. If
|
||||
present, it is parsed. If the `userconfig` option is set in the cli
|
||||
or env, then that will be used instead.
|
||||
* Global Configs:
|
||||
The file found at ../etc/npmrc (from the node executable, by default
|
||||
this resolves to /usr/local/etc/npmrc) will be parsed if it is found.
|
||||
If the `globalconfig` option is set in the cli, env, or user config,
|
||||
then that file is parsed instead.
|
||||
* Defaults:
|
||||
npm's default configuration options are defined in
|
||||
lib/utils/config-defs.js. These must not be changed.
|
||||
|
||||
See `npm-config(1)` for much much more information.
|
||||
|
||||
## CONTRIBUTIONS
|
||||
|
||||
Patches welcome!
|
||||
|
||||
* code:
|
||||
Read through `npm-coding-style(1)` if you plan to submit code.
|
||||
You don't have to agree with it, but you do have to follow it.
|
||||
* docs:
|
||||
If you find an error in the documentation, edit the appropriate markdown
|
||||
file in the "doc" folder. (Don't worry about generating the man page.)
|
||||
|
||||
Contributors are listed in npm's `package.json` file. You can view them
|
||||
easily by doing `npm view npm contributors`.
|
||||
|
||||
If you would like to contribute, but don't know what to work on, check
|
||||
the issues list or ask on the mailing list.
|
||||
|
||||
* <http://github.com/isaacs/npm/issues>
|
||||
* <npm-@googlegroups.com>
|
||||
|
||||
## BUGS
|
||||
|
||||
When you find issues, please report them:
|
||||
|
||||
* web:
|
||||
<http://github.com/isaacs/npm/issues>
|
||||
* email:
|
||||
<npm-@googlegroups.com>
|
||||
|
||||
Be sure to include *all* of the output from the npm command that didn't work
|
||||
as expected. The `npm-debug.log` file is also helpful to provide.
|
||||
|
||||
You can also look for isaacs in #node.js on irc://irc.freenode.net. He
|
||||
will no doubt tell you to put the output in a gist or email.
|
||||
|
||||
## HISTORY
|
||||
|
||||
See npm-changelog(1)
|
||||
|
||||
## AUTHOR
|
||||
|
||||
[Isaac Z. Schlueter](http://blog.izs.me/) ::
|
||||
[isaacs](https://github.com/isaacs/) ::
|
||||
[@izs](http://twitter.com/izs) ::
|
||||
<i@izs.me>
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-help(1)
|
||||
* npm-faq(1)
|
||||
* README
|
||||
* npm-json(1)
|
||||
* npm-install(1)
|
||||
* npm-config(1)
|
||||
* npm-index(1)
|
||||
* npm(3)
|
17
deps/npm/doc/cli/outdated.md
vendored
Normal file
17
deps/npm/doc/cli/outdated.md
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
npm-outdated(1) -- Check for outdated packages
|
||||
==============================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm outdated [<name> [<name> ...]]
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command will check the registry to see if any (or, specific) installed
|
||||
packages are currently outdated.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-update(1)
|
||||
* npm-registry(1)
|
||||
* npm-folders(1)
|
32
deps/npm/doc/cli/owner.md
vendored
Normal file
32
deps/npm/doc/cli/owner.md
vendored
Normal file
@ -0,0 +1,32 @@
|
||||
npm-owner(1) -- Manage package owners
|
||||
=====================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm owner ls <package name>
|
||||
npm owner add <user> <package name>
|
||||
npm owner rm <user> <package name>
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Manage ownership of published packages.
|
||||
|
||||
* ls:
|
||||
List all the users who have access to modify a package and push new versions.
|
||||
Handy when you need to know who to bug for help.
|
||||
* add:
|
||||
Add a new user as a maintainer of a package. This user is enabled to modify
|
||||
metadata, publish new versions, and add other owners.
|
||||
* rm:
|
||||
Remove a user from the package owner list. This immediately revokes their
|
||||
privileges.
|
||||
|
||||
Note that there is only one level of access. Either you can modify a package,
|
||||
or you can't. Future versions may contain more fine-grained access levels, but
|
||||
that is not implemented at this time.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-publish(1)
|
||||
* npm-registry(1)
|
||||
* npm-adduser(1)
|
25
deps/npm/doc/cli/pack.md
vendored
Normal file
25
deps/npm/doc/cli/pack.md
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
npm-pack(1) -- Create a tarball from a package
|
||||
==============================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm pack [<pkg> [<pkg> ...]]
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
For anything that's installable (that is, a package folder, tarball,
|
||||
tarball url, name@tag, name@version, or name), this command will fetch
|
||||
it to the cache, and then copy the tarball to the current working
|
||||
directory as `<name>-<version>.tgz`, and then write the filenames out to
|
||||
stdout.
|
||||
|
||||
If the same package is specified multiple times, then the file will be
|
||||
overwritten the second time.
|
||||
|
||||
If no arguments are supplied, then npm packs the current package folder.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-cache(1)
|
||||
* npm-publish(1)
|
||||
* npm-config(1)
|
17
deps/npm/doc/cli/prefix.md
vendored
Normal file
17
deps/npm/doc/cli/prefix.md
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
npm-prefix(1) -- Display prefix
|
||||
===============================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm prefix
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Print the prefix to standard out.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-root(1)
|
||||
* npm-bin(1)
|
||||
* npm-folders(1)
|
||||
* npm-config(1)
|
21
deps/npm/doc/cli/prune.md
vendored
Normal file
21
deps/npm/doc/cli/prune.md
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
npm-prune(1) -- Remove extraneous packages
|
||||
==========================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm prune [<name> [<name ...]]
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command removes "extraneous" packages. If a package name is
|
||||
provided, then only packages matching one of the supplied names are
|
||||
removed.
|
||||
|
||||
Extraneous packages are packages that are not listed on the parent
|
||||
package's dependencies list.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-rm(1)
|
||||
* npm-folders(1)
|
||||
* npm-list(1)
|
30
deps/npm/doc/cli/publish.md
vendored
Normal file
30
deps/npm/doc/cli/publish.md
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
npm-publish(1) -- Publish a package
|
||||
===================================
|
||||
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm publish <tarball>
|
||||
npm publish <folder>
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
Publishes a package to the registry so that it can be installed by name.
|
||||
|
||||
* `<folder>`:
|
||||
A folder containing a package.json file
|
||||
|
||||
* `<tarball>`:
|
||||
A url or file path to a gzipped tar archive containing a single folder
|
||||
with a package.json file inside.
|
||||
|
||||
Fails if the package name and version combination already exists in
|
||||
the registry. Overwrites when the "--force" flag is set.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-registry(1)
|
||||
* npm-adduser(1)
|
||||
* npm-owner(1)
|
||||
* npm-deprecate(1)
|
||||
* npm-tag(1)
|
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