mirror of
https://github.com/nodejs/node-v0.x-archive.git
synced 2026-04-28 03:01:10 -04:00
Compare commits
563 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
debf552ed2 | ||
|
|
e5d3ea7771 | ||
|
|
cb76999bad | ||
|
|
0742f5629c | ||
|
|
434404e3bb | ||
|
|
ccc854d14e | ||
|
|
2ae9b69871 | ||
|
|
5ff2ae8389 | ||
|
|
7535e3930a | ||
|
|
7865c5c51d | ||
|
|
f19f980724 | ||
|
|
2498d15dde | ||
|
|
4bc1d395de | ||
|
|
8068f9bf38 | ||
|
|
14a5b45c06 | ||
|
|
ea4b1c1c0c | ||
|
|
9b42d7daaf | ||
|
|
fb7348ae06 | ||
|
|
bd907174e8 | ||
|
|
a475e62a3e | ||
|
|
d91004a73d | ||
|
|
d8351a2ef4 | ||
|
|
5f9ffa17b1 | ||
|
|
9239088e87 | ||
|
|
07d8a4650e | ||
|
|
884499d37e | ||
|
|
cc8cfb145a | ||
|
|
52f0c37d09 | ||
|
|
493beb23f2 | ||
|
|
3883f22ad1 | ||
|
|
bf9d8e9214 | ||
|
|
814033365b | ||
|
|
ee437c0557 | ||
|
|
8c758e127c | ||
|
|
b4fbf6d275 | ||
|
|
e02af94947 | ||
|
|
8cd2b0e778 | ||
|
|
992e3464b8 | ||
|
|
fbe143d9cb | ||
|
|
4ced23deaf | ||
|
|
711ecdd54f | ||
|
|
aaf0453b7c | ||
|
|
719cd461d3 | ||
|
|
ab60efb535 | ||
|
|
d1effbb338 | ||
|
|
2fc528ce00 | ||
|
|
62c12d2161 | ||
|
|
ebd0f98e2b | ||
|
|
e3ceee2dce | ||
|
|
91120e0429 | ||
|
|
b7e8e35c0e | ||
|
|
75f2365558 | ||
|
|
df2c5fa81d | ||
|
|
47d6a94656 | ||
|
|
c9be1d5ffd | ||
|
|
bce68134b6 | ||
|
|
bfe9cdb7f2 | ||
|
|
acf19500ee | ||
|
|
518d28c23a | ||
|
|
a1d193963d | ||
|
|
e5ef103b05 | ||
|
|
35bcb1d6a9 | ||
|
|
1ac05cc5ad | ||
|
|
db844b152a | ||
|
|
3546383cf0 | ||
|
|
55e4d54927 | ||
|
|
51e66ec410 | ||
|
|
0b75eee364 | ||
|
|
e221cd4a53 | ||
|
|
76de7c0c26 | ||
|
|
a64acd8baa | ||
|
|
27dfb1d4c0 | ||
|
|
642945cc00 | ||
|
|
c9a231db0e | ||
|
|
e5b787e84d | ||
|
|
5d69bbfbdb | ||
|
|
0f74729758 | ||
|
|
0c0f13eda4 | ||
|
|
69ca83f755 | ||
|
|
3f4261276e | ||
|
|
d03b80bc12 | ||
|
|
8b82abb953 | ||
|
|
d0365fd21f | ||
|
|
e8067cb685 | ||
|
|
163d3cdf14 | ||
|
|
f160a45b25 | ||
|
|
c75f71dd72 | ||
|
|
45b772d8cb | ||
|
|
08e2e570a7 | ||
|
|
57d722011a | ||
|
|
e81a5e9c9c | ||
|
|
ba055115e0 | ||
|
|
1330419446 | ||
|
|
c9f17305e6 | ||
|
|
cf75619bc3 | ||
|
|
331cd7c251 | ||
|
|
37ac5e52bf | ||
|
|
0b57fee3f8 | ||
|
|
1042a8d887 | ||
|
|
40b7302af8 | ||
|
|
f178f2ae3f | ||
|
|
052aaa4c4d | ||
|
|
ffee873941 | ||
|
|
0965d2d9f6 | ||
|
|
1e577f347b | ||
|
|
066789a6e3 | ||
|
|
a7dce47854 | ||
|
|
dbd0e2b386 | ||
|
|
e513ffef75 | ||
|
|
d497bf845b | ||
|
|
76f31faa3b | ||
|
|
0dcc43316f | ||
|
|
d227084339 | ||
|
|
a7cd76bb3b | ||
|
|
67f1778065 | ||
|
|
d1255914df | ||
|
|
ea44d3031d | ||
|
|
851b3970e7 | ||
|
|
d980620010 | ||
|
|
03077db45d | ||
|
|
44527e6023 | ||
|
|
90b785c09a | ||
|
|
b9bd2d3eb9 | ||
|
|
9726a259bf | ||
|
|
9f7f86b534 | ||
|
|
06bf0707f7 | ||
|
|
571a51989e | ||
|
|
f631c1d73b | ||
|
|
ad5a108dfd | ||
|
|
c834ef409e | ||
|
|
c12a1dc5d8 | ||
|
|
3733a85d8d | ||
|
|
daaccc7cb7 | ||
|
|
33f9074a62 | ||
|
|
8258bd467a | ||
|
|
5ca5ec33cc | ||
|
|
f1742c93d7 | ||
|
|
a42b4ad44e | ||
|
|
1d59a73fef | ||
|
|
cf6e4d82e7 | ||
|
|
2e487379ad | ||
|
|
f70be203e4 | ||
|
|
c368e46e7f | ||
|
|
3dfa98c991 | ||
|
|
2d44dcc8be | ||
|
|
2f256af412 | ||
|
|
353bfbaf93 | ||
|
|
48a2d34cfe | ||
|
|
ef5b0f4c8e | ||
|
|
b47ba2c431 | ||
|
|
2d6a076ab3 | ||
|
|
c0c4e008aa | ||
|
|
1bf3a14353 | ||
|
|
054127112c | ||
|
|
edea94c332 | ||
|
|
d8c5ba2185 | ||
|
|
3aa2fd3b2c | ||
|
|
a63ce6ea94 | ||
|
|
4ca3fd0a01 | ||
|
|
86d077da00 | ||
|
|
17db291b5c | ||
|
|
7bfa5cf284 | ||
|
|
674416fbc9 | ||
|
|
b34feeeb86 | ||
|
|
169b0820f0 | ||
|
|
3c195d04f3 | ||
|
|
c417de409d | ||
|
|
c2f6405a0f | ||
|
|
c0446edcc2 | ||
|
|
4ed05da2be | ||
|
|
8d1e5d3ae1 | ||
|
|
774c289ba8 | ||
|
|
8e22004cb5 | ||
|
|
d39297251f | ||
|
|
3b6c1d74c7 | ||
|
|
798f8a0dc1 | ||
|
|
e083720d54 | ||
|
|
3ce782b7f2 | ||
|
|
8a121fa0e7 | ||
|
|
e8ad5b9c1c | ||
|
|
e88a1ba74a | ||
|
|
c205d3b53a | ||
|
|
4f24b20fcb | ||
|
|
a62ec4437b | ||
|
|
2a6ff3f56b | ||
|
|
14d4fbb002 | ||
|
|
cacb28c92c | ||
|
|
db8c55e77c | ||
|
|
f775c5cea4 | ||
|
|
032b877f31 | ||
|
|
6738d82e38 | ||
|
|
03d6aa07ea | ||
|
|
d383954ffe | ||
|
|
5d4e3d2d0c | ||
|
|
df5be65415 | ||
|
|
d71f9944cc | ||
|
|
f28d482cd4 | ||
|
|
5824881e4a | ||
|
|
1a181315eb | ||
|
|
63629614cb | ||
|
|
8cd13eb74e | ||
|
|
ffcdcc7ff0 | ||
|
|
4051c2843b | ||
|
|
217bb47b02 | ||
|
|
4065b241e8 | ||
|
|
63431796f4 | ||
|
|
692bcbe559 | ||
|
|
7f58d207f3 | ||
|
|
483edbdf1a | ||
|
|
70a393ea9a | ||
|
|
4f8d7328a4 | ||
|
|
cd4cb8e795 | ||
|
|
ca0986fbd1 | ||
|
|
e004721b48 | ||
|
|
35c1f682c1 | ||
|
|
634b4de2c8 | ||
|
|
186960fefb | ||
|
|
c6019b8b4e | ||
|
|
96a137a18a | ||
|
|
c1f474010e | ||
|
|
23c4278e06 | ||
|
|
dfed2cef75 | ||
|
|
f73f07e126 | ||
|
|
1eb1fe3225 | ||
|
|
a2851b6234 | ||
|
|
4672872ddd | ||
|
|
9764bea97d | ||
|
|
4ed7b035bd | ||
|
|
a118f21728 | ||
|
|
7a1a62ec6e | ||
|
|
30e462e919 | ||
|
|
83fd1c1de5 | ||
|
|
2c07712860 | ||
|
|
8f2694bb53 | ||
|
|
d52f5020ce | ||
|
|
9364699be1 | ||
|
|
3415427dbf | ||
|
|
ef50bd2e54 | ||
|
|
d91bc7cb09 | ||
|
|
077f9d7293 | ||
|
|
0685707bc6 | ||
|
|
14b20ffc30 | ||
|
|
b19b8836c3 | ||
|
|
1ce14eca44 | ||
|
|
ef032cbe85 | ||
|
|
2e6ad62047 | ||
|
|
c3f176222a | ||
|
|
2f759a7090 | ||
|
|
d3f6b094c7 | ||
|
|
c7771bc2ec | ||
|
|
c9f58cc595 | ||
|
|
a8f357629d | ||
|
|
38eec57aef | ||
|
|
cacd3ae004 | ||
|
|
163900dc68 | ||
|
|
e5ed6b91f4 | ||
|
|
81d18398a8 | ||
|
|
09c296b44d | ||
|
|
0a347559bf | ||
|
|
7543c38dca | ||
|
|
a2cd31cbf1 | ||
|
|
0f0af55a0a | ||
|
|
11d1eca9f3 | ||
|
|
f64989e63b | ||
|
|
07a983a602 | ||
|
|
4671e54495 | ||
|
|
68db20656e | ||
|
|
9fb088e3ab | ||
|
|
74a2528bd7 | ||
|
|
051908e023 | ||
|
|
5937d02aed | ||
|
|
71527e3a55 | ||
|
|
465f57c56f | ||
|
|
30fd2f7bb2 | ||
|
|
7e40c7ddc9 | ||
|
|
f101f7c9ba | ||
|
|
67cd05472e | ||
|
|
e5ea6ad0f0 | ||
|
|
a661830569 | ||
|
|
5166758927 | ||
|
|
3deceaf6e7 | ||
|
|
7e0bf7d57d | ||
|
|
840229a825 | ||
|
|
35b3d15194 | ||
|
|
fa490f6497 | ||
|
|
0ad2a9a2e0 | ||
|
|
3fd13c6426 | ||
|
|
b221fe9b29 | ||
|
|
ca4b91a1d0 | ||
|
|
5756d7916a | ||
|
|
f19e20d33f | ||
|
|
4b6164ab49 | ||
|
|
22e23473ea | ||
|
|
38651521a8 | ||
|
|
8a413b076e | ||
|
|
f98999cc16 | ||
|
|
ff0f0aeb40 | ||
|
|
a0119af0e4 | ||
|
|
5c0f039c9c | ||
|
|
352febe251 | ||
|
|
ccf7b41a69 | ||
|
|
2775c0e97e | ||
|
|
46e86aa803 | ||
|
|
986e612557 | ||
|
|
57ddf5f50a | ||
|
|
aef62a03ee | ||
|
|
9037decb28 | ||
|
|
6999fb3d1e | ||
|
|
fc6a9673c8 | ||
|
|
ed111975a0 | ||
|
|
f33a35e293 | ||
|
|
7b93eb0000 | ||
|
|
6768d2fc93 | ||
|
|
5c0d11b12a | ||
|
|
5d7577c71a | ||
|
|
4fd315192a | ||
|
|
831c8199f6 | ||
|
|
6c0c00a205 | ||
|
|
f5e742b264 | ||
|
|
9edb984274 | ||
|
|
827180097c | ||
|
|
93298afc4e | ||
|
|
f9014438c7 | ||
|
|
3df7c90c30 | ||
|
|
f2b1f57f74 | ||
|
|
f749338e1e | ||
|
|
a38fd6056c | ||
|
|
08ab306afd | ||
|
|
35fe3eb5c7 | ||
|
|
40c93486e8 | ||
|
|
f25ec0782e | ||
|
|
ec1d1ee61f | ||
|
|
d18cebaf8a | ||
|
|
4afc46d7bc | ||
|
|
4fdec07bd8 | ||
|
|
e282c0a081 | ||
|
|
f7b612550a | ||
|
|
d489a01f81 | ||
|
|
d44ce97909 | ||
|
|
091ab850aa | ||
|
|
54ad2f6cbb | ||
|
|
892056bf97 | ||
|
|
4865063924 | ||
|
|
ca6ededbd1 | ||
|
|
1695332941 | ||
|
|
534df2f8d2 | ||
|
|
549443a7cc | ||
|
|
25410096b4 | ||
|
|
f0c1376e07 | ||
|
|
766f609838 | ||
|
|
bd9fa2e841 | ||
|
|
465e22e62f | ||
|
|
247d0da188 | ||
|
|
07701e7cc8 | ||
|
|
b073989e17 | ||
|
|
8cca30f31b | ||
|
|
290bc0c067 | ||
|
|
0ad2717fd8 | ||
|
|
2d8af39acc | ||
|
|
e6a30bd107 | ||
|
|
b07acb3808 | ||
|
|
d5d043f2d7 | ||
|
|
cc5cea35b0 | ||
|
|
22d7fe1206 | ||
|
|
9a79bb694e | ||
|
|
472a72d27f | ||
|
|
9ef3c6238b | ||
|
|
57653added | ||
|
|
ff4096f958 | ||
|
|
d5a189acef | ||
|
|
d84a6ba3d1 | ||
|
|
bca88b2dc1 | ||
|
|
be67fa7e09 | ||
|
|
8bd80f4911 | ||
|
|
4a899c9274 | ||
|
|
dd9593ccc4 | ||
|
|
78dbb4b5b1 | ||
|
|
760928bfad | ||
|
|
baebd30eee | ||
|
|
3452477dcb | ||
|
|
f3da6c6c04 | ||
|
|
2cde498319 | ||
|
|
6f8839d2ac | ||
|
|
884f689efe | ||
|
|
41f2725639 | ||
|
|
c2fb062f60 | ||
|
|
8e57398b20 | ||
|
|
539598b11f | ||
|
|
8b2abed03d | ||
|
|
432a2e4d39 | ||
|
|
3f5bb15f35 | ||
|
|
744ed46970 | ||
|
|
8c3a757ffc | ||
|
|
448c5e07ca | ||
|
|
d483acc5d9 | ||
|
|
a848a3efbf | ||
|
|
e1c043f43a | ||
|
|
a337ac7584 | ||
|
|
70e6f3f115 | ||
|
|
7aa5924dc6 | ||
|
|
0de6ec5f08 | ||
|
|
ed5bad754c | ||
|
|
d85c85aac1 | ||
|
|
c6347dcfb4 | ||
|
|
cf2513e1aa | ||
|
|
b261e37a34 | ||
|
|
5976d58796 | ||
|
|
045bfe0da5 | ||
|
|
d8c178bc16 | ||
|
|
892ba87866 | ||
|
|
ef659192a1 | ||
|
|
6029127cea | ||
|
|
73cf8e82e7 | ||
|
|
07c27e040e | ||
|
|
7a7f1062bf | ||
|
|
f4e34f1b76 | ||
|
|
348d8cd04a | ||
|
|
d87f551f36 | ||
|
|
926365c9f8 | ||
|
|
4b455bafd0 | ||
|
|
f322bbe729 | ||
|
|
ec51bfc995 | ||
|
|
f2f30286bf | ||
|
|
6df7bdd954 | ||
|
|
c4d2244a09 | ||
|
|
d75de86e6d | ||
|
|
90fb81ad54 | ||
|
|
a599aeb2a8 | ||
|
|
b9049d2f90 | ||
|
|
d6bae2cb95 | ||
|
|
666aa0a343 | ||
|
|
c744e925df | ||
|
|
4b123f9ca2 | ||
|
|
cc2861ee44 | ||
|
|
ee7313266a | ||
|
|
dd8018de95 | ||
|
|
9a059ea69e | ||
|
|
56f65e3c3e | ||
|
|
ae17e2d90a | ||
|
|
de3c16afae | ||
|
|
2255efa171 | ||
|
|
b04d4fff35 | ||
|
|
bb9316da28 | ||
|
|
f490934c33 | ||
|
|
1c3883bef2 | ||
|
|
97900776bb | ||
|
|
d29be0dfa2 | ||
|
|
43e91da074 | ||
|
|
ef12fa1bf7 | ||
|
|
321ec97d95 | ||
|
|
77f21787d4 | ||
|
|
d70ef199f1 | ||
|
|
b1b3dc62ff | ||
|
|
e90db17392 | ||
|
|
6e76fc2866 | ||
|
|
19a18add4e | ||
|
|
95b034e484 | ||
|
|
93188918ea | ||
|
|
8295c80618 | ||
|
|
e698dd38c3 | ||
|
|
5bbb4cadc3 | ||
|
|
8e2c014e43 | ||
|
|
429efdd974 | ||
|
|
b24cdb3d36 | ||
|
|
871194d5fd | ||
|
|
22c2c34952 | ||
|
|
eef5d3257d | ||
|
|
7547c7df1a | ||
|
|
fd29448be0 | ||
|
|
70bc2e32af | ||
|
|
23bb5986d4 | ||
|
|
57d2857938 | ||
|
|
580e67015c | ||
|
|
89e894b17a | ||
|
|
9023b0b3a2 | ||
|
|
cf20b6bf65 | ||
|
|
6f86b9cb70 | ||
|
|
db273818f6 | ||
|
|
36815e4179 | ||
|
|
1a89c8d061 | ||
|
|
fdf180f9ce | ||
|
|
aeb124f7f3 | ||
|
|
a0fdd5f3f6 | ||
|
|
c50b0c9237 | ||
|
|
6cc94db653 | ||
|
|
60e26668b3 | ||
|
|
1cf26e2bf1 | ||
|
|
46b6954acd | ||
|
|
ffc8110659 | ||
|
|
3ebbdc6320 | ||
|
|
a29a7c72fa | ||
|
|
9170077f13 | ||
|
|
641f2bedf3 | ||
|
|
ded97eb892 | ||
|
|
e84edd2593 | ||
|
|
823a443321 | ||
|
|
1ad30a2af4 | ||
|
|
99c9d19184 | ||
|
|
dd4b280d8c | ||
|
|
ae648a44c4 | ||
|
|
9b4e8e0a0d | ||
|
|
0f6d3e22d9 | ||
|
|
3e7f4b0f82 | ||
|
|
d5f401147a | ||
|
|
61764613d1 | ||
|
|
d5feb1c280 | ||
|
|
3d22dbf27b | ||
|
|
03eb41c2ec | ||
|
|
3ca0517749 | ||
|
|
456dafc3c6 | ||
|
|
cf89beec6f | ||
|
|
b204006105 | ||
|
|
754e23db27 | ||
|
|
260383215b | ||
|
|
5fea00581b | ||
|
|
6ed721afd2 | ||
|
|
aab958b713 | ||
|
|
1c62e807e1 | ||
|
|
eba1f7b1a4 | ||
|
|
a5c51b4858 | ||
|
|
216019b72d | ||
|
|
e85a95dfa3 | ||
|
|
fc0a4c2781 | ||
|
|
5451ba3aa8 | ||
|
|
6392eba3f9 | ||
|
|
34f34e4411 | ||
|
|
3a160646df | ||
|
|
b159c6d62e | ||
|
|
2335c4bb41 | ||
|
|
b480cfaf34 | ||
|
|
a056ef1f39 | ||
|
|
5b014e0725 | ||
|
|
1f16a7b6e5 | ||
|
|
319580953d | ||
|
|
232e8e19a1 | ||
|
|
95eb729e6f | ||
|
|
236b217cd7 | ||
|
|
d51a0c353b | ||
|
|
55a8a3aad4 | ||
|
|
7244b9cee8 | ||
|
|
a639cf7d84 | ||
|
|
83152d174c | ||
|
|
86fba381fd | ||
|
|
cbcf4fe768 | ||
|
|
16889e22cc | ||
|
|
ce3ccc8d5a | ||
|
|
b906e85996 | ||
|
|
055a933fa9 | ||
|
|
e5cf3f9751 | ||
|
|
3ab15cde25 | ||
|
|
0ba78d5f36 | ||
|
|
6e1e9e2fcb | ||
|
|
246805d386 | ||
|
|
3abebfea98 | ||
|
|
38c49fbc4a | ||
|
|
2cd5adc28b | ||
|
|
6035651fad | ||
|
|
7defbd27ef | ||
|
|
b488be127a | ||
|
|
05de01d707 | ||
|
|
4d05f56dcd | ||
|
|
9d1bdbcf05 | ||
|
|
61e796decc |
9
.gitignore
vendored
9
.gitignore
vendored
@@ -1,4 +1,5 @@
|
||||
|
||||
core
|
||||
vgcore.*
|
||||
.waf*
|
||||
tags
|
||||
.lock-wscript
|
||||
@@ -34,3 +35,9 @@ ipch/
|
||||
*-nodegyp*
|
||||
/gyp-mac-tool
|
||||
/dist-osx
|
||||
/npm.wxs
|
||||
/tools/msvs/npm.wixobj
|
||||
email.md
|
||||
blog.html
|
||||
deps/v8-*
|
||||
node_modules
|
||||
|
||||
14
.travis.yml
Normal file
14
.travis.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
language: node_js
|
||||
|
||||
before_script:
|
||||
- "./configure"
|
||||
- "make"
|
||||
|
||||
script:
|
||||
- "make test"
|
||||
|
||||
notifications:
|
||||
email: false
|
||||
irc:
|
||||
- "irc.freenode.net#libuv"
|
||||
|
||||
43
AUTHORS
43
AUTHORS
@@ -172,6 +172,7 @@ Scott McWhirter <scott.mcwhirter@joyent.com>
|
||||
Jakub Lekstan <jakub.lekstan@dreamlab.pl>
|
||||
Tim Baumann <tim@timbaumann.info>
|
||||
Robert Mustacchi <rm@joyent.com>
|
||||
Håvard Stranden <havard.stranden@gmail.com>
|
||||
George Miroshnykov <george.miroshnykov@gmail.com>
|
||||
Marcel Laverdet <marcel@laverdet.com>
|
||||
Alexandre Marangone <a.marangone@gmail.com>
|
||||
@@ -235,3 +236,45 @@ Jacob H.C. Kragh <jhckragh@gmail.com>
|
||||
Benjamin Pasero <benjamin.pasero@gmail.com>
|
||||
Scott Anderson <sanderson7@gmail.com>
|
||||
Yoji SHIDARA <dara@shidara.net>
|
||||
Mathias Bynens <mathias@qiwi.be>
|
||||
Łukasz Walukiewicz <lukasz@walukiewicz.eu>
|
||||
Artur Adib <arturadib@gmail.com>
|
||||
E. Azer Koçulu <azer@kodfabrik.com>
|
||||
Roman Shtylman <shtylman@gmail.com>
|
||||
Kyle Robinson Young <kyle@dontkry.com>
|
||||
Tim Oxley <secoif@gmail.com>
|
||||
Ingmar Runge <ingmar@irsoft.de>
|
||||
Russ Bradberry <rbradberry@gmail.com>
|
||||
Andreas Madsen <amwebdk@gmail.com>
|
||||
Adam Malcontenti-Wilson <adman.com@gmail.com>
|
||||
James Hartig <james.hartig@grooveshark.com>
|
||||
Shannen Saez <shannenlaptop@gmail.com>
|
||||
Seong-Rak Choi <ragiragi@hanmail.net>
|
||||
Dave Irvine <davman99@gmail.com>
|
||||
Ju-yeong Park <interruptz@gmail.com>
|
||||
Phil Sung <psung@dnanexus.com>
|
||||
Damon Oehlman <damon.oehlman@sidelab.com>
|
||||
Ryunosuke SATO <tricknotes.rs@gmail.com>
|
||||
Michael Bernstein <michaelrbernstein@gmail.com>
|
||||
Guillermo Rauch <rauchg@gmail.com>
|
||||
Dan Williams <dan@igniter.com>
|
||||
Brandon Benvie <brandon@bbenvie.com>
|
||||
Nicolas LaCasse <nlacasse@borderstylo.com>
|
||||
Dan VerWeire <dverweire@gmail.com>
|
||||
Matthew Fitzsimmons <matt@joyent.com>
|
||||
Paddy Byers <paddy.byers@gmail.com>
|
||||
Philip Tellis <philip.tellis@gmail.com>
|
||||
Christopher Jeffrey <chjjeffrey@gmail.com>
|
||||
Seth Fitzsimmons <seth@mojodna.net>
|
||||
Einar Otto Stangvik <einaros@gmail.com>
|
||||
Paul Vorbach <paul@vorb.de>
|
||||
tedsuo <ted@radicaldesigns.org>
|
||||
Joshua Holbrook <josh.holbrook@gmail.com>
|
||||
Rod Vagg <rod@vagg.org>
|
||||
Bryan Cantrill <bryan@joyent.com>
|
||||
lrn@chromium.org <lrn@chromium.org>
|
||||
Dane Springmeyer <dane@dbsgeo.com>
|
||||
Sambasiva Suda <sambasivarao@gmail.com>
|
||||
Vincent Voyer <v@fasterize.com>
|
||||
ANDO Takahiro <takahiro.ando@gmail.com>
|
||||
Erwin van der Koogh <github@koogh.com>
|
||||
|
||||
481
ChangeLog
481
ChangeLog
@@ -1,29 +1,458 @@
|
||||
2011.11.18, Version 0.6.2 (stable)
|
||||
2012.06.06 Version 0.6.19 (stable)
|
||||
|
||||
* doc improvements (Artur Adib, Trevor Burnham, Ryan Emery, Trent Mick)
|
||||
* npm: upgrade to 1.1.24
|
||||
|
||||
* timers: remember extra setTimeout() arguments when timeout==0
|
||||
* fs: no end emit after createReadStream.pause() (Andreas Madsen)
|
||||
|
||||
* punycode: use Mathias Bynens's punycode library, it's more compliant
|
||||
* vm: cleanup module memory leakage (Marcel Laverdet)
|
||||
|
||||
* repl: improved tab completion (Ryan Emery)
|
||||
* unix: fix loop starvation under high network load (Ben Noordhuis)
|
||||
|
||||
* buffer: fix range checks in .writeInt() functions (Lukasz Walukiewicz)
|
||||
* unix: remove abort() in ev_unref() (Ben Noordhuis)
|
||||
|
||||
* tls: make cipher list configurable
|
||||
* windows/tty: never report error after forcibly aborting line-buffered read (Bert Belder)
|
||||
|
||||
* addons: make Buffer and ObjectWrap visible to Windows add-ons (Bert Belder)
|
||||
|
||||
* crypto: add PKCS#1 a.k.a RSA public key verification support
|
||||
|
||||
* windows: fix stdout writes when redirected to nul
|
||||
|
||||
* sunos: fix build on Solaris and Illumos
|
||||
|
||||
* Upgrade V8 to 3.6.6.8
|
||||
* windows: skip GetFileAttributes call when opening a file (Bert Belder)
|
||||
|
||||
|
||||
2011.11.11, Version 0.6.1 (stable)
|
||||
2012.05.15 Version 0.6.18 (stable), 4bc1d395de6abed2cf1e4d0b7b3a1480a21c368f
|
||||
|
||||
* windows: skip GetFileAttributes call when opening a file (Bert Belder)
|
||||
|
||||
* crypto: add PKCS12/PFX support (Sambasiva Suda)
|
||||
|
||||
* #3240: child_process: delete NODE_CHANNEL_FD from env in spawn (Ben Noordhuis)
|
||||
|
||||
* windows: add test for path.normalize with UNC paths (Bert Belder)
|
||||
|
||||
* windows: make path.normalize convert all slashes to backslashes (Bert Belder)
|
||||
|
||||
* fs: Automatically close FSWatcher on error (Bert Belder)
|
||||
|
||||
* #3258: fs.ReadStream.pause() emits duplicate data event (koichik)
|
||||
|
||||
* pipe_wrap: don't assert() on pipe accept errors (Ben Noordhuis)
|
||||
|
||||
* Better exception output for module load and process.nextTick (Felix Geisendörfer)
|
||||
|
||||
* zlib: fix error reporting (Ben Noordhuis)
|
||||
|
||||
* http: Don't destroy on timeout (isaacs)
|
||||
|
||||
* #3231: http: Don't try to emit error on a null'ed req object (isaacs)
|
||||
|
||||
* #3236: http: Refactor ClientRequest.onSocket (isaacs)
|
||||
|
||||
|
||||
2012.05.04 Version 0.6.17 (stable), 4ced23deaf36493f4303a18f6fdce768c58becc0
|
||||
|
||||
* Upgrade npm to 1.1.21
|
||||
|
||||
* uv: Add support for EROFS errors (Ben Noordhuis, Maciej Małecki)
|
||||
|
||||
* uv: Add support for EIO and ENOSPC errors (Fedor Indutny)
|
||||
|
||||
* windows: Add support for EXDEV errors (Bert Belder)
|
||||
|
||||
* http: Fix client memory leaks (isaacs, Vincent Voyer)
|
||||
|
||||
* fs: fix file descriptor leak in sync functions (Ben Noordhuis)
|
||||
|
||||
* fs: fix ReadStream / WriteStream double close bug (Ben Noordhuis)
|
||||
|
||||
|
||||
2012.04.30 Version 0.6.16 (stable), a1d193963ddc80a27da5da01b59751e14e33d1d6
|
||||
|
||||
* Upgrade V8 to 3.6.6.25
|
||||
|
||||
* Upgrade npm to 1.1.19
|
||||
|
||||
* Windows: add mappings for UV_ENOENT (Bert Belder)
|
||||
|
||||
* linux: add IN_MOVE_SELF to inotify event mask (Ben Noordhuis)
|
||||
|
||||
* unix: call pipe handle connection cb on accept() error (Ben Noordhuis)
|
||||
|
||||
* unix: handle EWOULDBLOCK (Ben Noordhuis)
|
||||
|
||||
* map EWOULDBLOCK to UV_EAGAIN (Ben Noordhuis)
|
||||
|
||||
* Map ENOMEM to UV_ENOMEM (isaacs)
|
||||
|
||||
* Child process: support the `gid` and `uid` options (Bert Belder)
|
||||
|
||||
* test: cluster: add worker death event test (Ben Noordhuis)
|
||||
|
||||
* typo in node_http_parser (isaacs)
|
||||
|
||||
* http_parser: Eat CRLF between requests, even on connection:close. (Ben Noordhuis)
|
||||
|
||||
* don't check return value of unsetenv (Ben Noordhuis)
|
||||
|
||||
|
||||
2012.04.09 Version 0.6.15 (stable), f160a45b254e591eb33716311c92be533c6d86c4
|
||||
|
||||
* Update npm to 1.1.16
|
||||
|
||||
* Show licenses in binary installers.
|
||||
|
||||
* unix: add uv_fs_read64, uv_fs_write64 and uv_fs_ftruncate64 (Ben Noordhuis)
|
||||
|
||||
* add 64bit offset fs functions (Igor Zinkovsky)
|
||||
|
||||
* windows: don't report ENOTSOCK when attempting to bind an udp handle twice (Bert Belder)
|
||||
|
||||
* windows: backport pipe-connect-to-file fixes from master (Bert Belder)
|
||||
|
||||
* windows: never call fs event callbacks after closing the watcher (Bert Belder)
|
||||
|
||||
* fs.readFile: don't make the callback before the fd is closed (Bert Belder)
|
||||
|
||||
* windows: use 64bit offsets for uv_fs apis (Igor Zinkovsky)
|
||||
|
||||
* Fix #2061: segmentation fault on OS X due to stat size mismatch (Ben Noordhuis)
|
||||
|
||||
|
||||
2012.03.22 Version 0.6.14 (stable), e513ffef7549a56a5af728e1f0c2c0c8f290518a
|
||||
|
||||
* net: don't crash when queued write fails (Igor Zinkovsky)
|
||||
|
||||
* sunos: fix EMFILE on process.memoryUsage() (Bryan Cantrill)
|
||||
|
||||
* crypto: fix compile-time error with openssl 0.9.7e (Ben Noordhuis)
|
||||
|
||||
* unix: ignore ECONNABORTED errors from accept() (Ben Noordhuis)
|
||||
|
||||
* Add UV_ENOSPC and mappings to it (Bert Belder)
|
||||
|
||||
* http-parser: Fix response body is not read (koichik)
|
||||
|
||||
* Upgrade npm to 1.1.12
|
||||
- upgrade node-gyp to 0.3.7
|
||||
- work around AV-locked directories on Windows
|
||||
- Fix isaacs/npm#2293 Don't try to 'uninstall' /
|
||||
- Exclude symbolic links from packages.
|
||||
- Fix isaacs/npm#2275 Spurious 'unresolvable cycle' error.
|
||||
- Exclude/include dot files as if they were normal files
|
||||
|
||||
|
||||
2012.03.15 Version 0.6.13 (stable), 9f7f86b534f8556290eb8cad915984ff4ca54996
|
||||
|
||||
* Windows: Many libuv test fixes (Bert Belder)
|
||||
|
||||
* Windows: avoid uv_guess_handle crash in when fd < 0 (Bert Belder)
|
||||
|
||||
* Map EBUSY and ENOTEMPTY errors (Bert Belder)
|
||||
|
||||
* Windows: include syscall in fs errors (Bert Belder)
|
||||
|
||||
* Fix fs.watch ENOSYS on Linux kernel version mismatch (Ben Noordhuis)
|
||||
|
||||
* Update npm to 1.1.9
|
||||
- upgrade node-gyp to 0.3.5 (Nathan Rajlich)
|
||||
- Fix isaacs/npm#2249 Add cache-max and cache-min configs
|
||||
- Properly redirect across https/http registry requests
|
||||
- log config usage if undefined key in set function (Kris Windham)
|
||||
- Add support for os/cpu fields in package.json (Adam Blackburn)
|
||||
- Automatically node-gyp packages containing a binding.gyp
|
||||
- Fix failures unpacking in UNC shares
|
||||
- Never create un-listable directories
|
||||
- Handle cases where an optionalDependency fails to build
|
||||
|
||||
|
||||
2012.03.02 Version 0.6.12 (stable), 48a2d34cfe6b7e1c9d15202a4ef5e3c82d1fba35
|
||||
|
||||
* Upgrade V8 to 3.6.6.24
|
||||
|
||||
* dtrace ustack helper improvements (Dave Pacheco)
|
||||
|
||||
* API Documentation refactor (isaacs)
|
||||
|
||||
* #2827 net: fix race write() before and after connect() (koichik)
|
||||
|
||||
* #2554 #2567 throw if fs args for 'start' or 'end' are strings (AJ ONeal)
|
||||
|
||||
* punycode: Update to v1.0.0 (Mathias Bynens)
|
||||
|
||||
* Make a fat binary for the OS X pkg (isaacs)
|
||||
|
||||
* Fix hang on accessing process.stdin (isaacs)
|
||||
|
||||
* repl: make tab completion work on non-objects (Nathan Rajlich)
|
||||
|
||||
* Fix fs.watch on OS X (Ben Noordhuis)
|
||||
|
||||
* Fix #2515 nested setTimeouts cause premature process exit (Ben Noordhuis)
|
||||
|
||||
* windows: fix time conversion in stat (Igor Zinkovsky)
|
||||
|
||||
* windows: fs: handle EOF in read (Brandon Philips)
|
||||
|
||||
* windows: avoid IOCP short-circuit on non-ifs lsps (Igor Zinkovsky)
|
||||
|
||||
* Upgrade npm to 1.1.4 (isaacs)
|
||||
- windows fixes
|
||||
- Bundle nested bundleDependencies properly
|
||||
- install: support --save with url install targets
|
||||
- shrinkwrap: behave properly with url-installed modules
|
||||
- support installing uncompressed tars or single file modules from urls etc.
|
||||
- don't run make clean on rebuild
|
||||
- support HTTPS-over-HTTP proxy tunneling
|
||||
|
||||
|
||||
2012.02.17 Version 0.6.11 (stable), 1eb1fe32250fc88cb5b0a97cddf3e02be02e3f4a
|
||||
|
||||
* http: allow multiple WebSocket RFC6455 headers (Einar Otto Stangvik)
|
||||
|
||||
* http: allow multiple WWW-Authenticate headers (Ben Noordhuis)
|
||||
|
||||
* windows: support unicode argv and environment variables (Bert Belder)
|
||||
|
||||
* tls: mitigate session renegotiation attacks (Ben Noordhuis)
|
||||
|
||||
* tcp, pipe: don't assert on uv_accept() errors (Ben Noordhuis)
|
||||
|
||||
* tls: Allow establishing secure connection on the existing socket (koichik)
|
||||
|
||||
* dgram: handle close of dgram socket before DNS lookup completes (Seth Fitzsimmons)
|
||||
|
||||
* windows: Support half-duplex pipes (Igor Zinkovsky)
|
||||
|
||||
* build: disable omit-frame-pointer on solaris systems (Dave Pacheco)
|
||||
|
||||
* debugger: fix --debug-brk (Ben Noordhuis)
|
||||
|
||||
* net: fix large file downloads failing (koichik)
|
||||
|
||||
* fs: fix ReadStream failure to read from existing fd (Christopher Jeffrey)
|
||||
|
||||
* net: destroy socket on DNS error (Stefan Rusu)
|
||||
|
||||
* dtrace: add missing translator (Dave Pacheco)
|
||||
|
||||
* unix: don't flush tty on switch to raw mode (Ben Noordhuis)
|
||||
|
||||
* windows: reset brightness when reverting to default text color (Bert Belder)
|
||||
|
||||
* npm: update to 1.1.1
|
||||
- Update which, fstream, mkdirp, request, and rimraf
|
||||
- Fix #2123 Set path properly for lifecycle scripts on windows
|
||||
- Mark the root as seen, so we don't recurse into it. Fixes #1838. (Martin Cooper)
|
||||
|
||||
|
||||
2012.02.02, Version 0.6.10 (stable), 051908e023f87894fa68f5b64d0b99a19a7db01e
|
||||
|
||||
* Update V8 to 3.6.6.20
|
||||
|
||||
* Add npm msysgit bash shim to msi installer (isaacs)
|
||||
|
||||
* buffers: fix intermittent out of bounds error (Ben Noordhuis)
|
||||
|
||||
* buffers: honor length argument in base64 decoder (Ben Noordhuis)
|
||||
|
||||
* windows: Fix path.exists regression (Bert Belder)
|
||||
|
||||
* Make QueryString.parse run faster (Philip Tellis)
|
||||
|
||||
* http: avoid freeing http-parser objects too early (koichik)
|
||||
|
||||
* timers: add v0.4 compatibility hack (Ben Noordhuis)
|
||||
|
||||
* Proper EPERM error code support (Igor Zinkovsky, Brandon Philips)
|
||||
|
||||
* dgram: Implement udp multicast methods on windows (Bert Belder)
|
||||
|
||||
|
||||
2012.01.27, Version 0.6.9 (stable), f19e20d33f57c4d2853aaea7d2724d44f3b0012f
|
||||
|
||||
* dgram: Bring back missing functionality for Unix (Dan VerWeire, Roman Shtylman, Ben Noordhuis)
|
||||
- Note: Windows UDP support not yet complete.
|
||||
|
||||
* http: Fix parser memory leak (koichik)
|
||||
|
||||
* zlib: Fix #2365 crashes on invalid input (Nicolas LaCasse)
|
||||
|
||||
* module: fix --debug-brk on symlinked scripts (Fedor Indutny)
|
||||
|
||||
* Documentation Restyling (Matthew Fitzsimmons)
|
||||
|
||||
* Update npm to 1.1.0-3 (isaacs)
|
||||
|
||||
* Windows: fix regression in stat() calls to C:\ (Bert Belder)
|
||||
|
||||
|
||||
2012.01.19, Version 0.6.8 (stable), d18cebaf8a7ac701dabd71a3aa4eb0571db6a645
|
||||
|
||||
* Update V8 to 3.6.6.19
|
||||
|
||||
* Numeric key hash collision fix for V8 (Erik Corry, Fedor Indutny)
|
||||
|
||||
* Add missing TTY key translations for F1-F5 on Windows (Brandon Benvie)
|
||||
|
||||
* path.extname bugfix with . and .. paths (Bert Belder)
|
||||
|
||||
* cluster: don't always kill the master on uncaughtException (Ben Noordhuis)
|
||||
|
||||
* Update npm to 1.1.0-2 (isaacs)
|
||||
|
||||
* typed arrays: set class name (Ben Noordhuis)
|
||||
|
||||
* zlib binding cleanup (isaacs, Bert Belder)
|
||||
|
||||
* dgram: use slab memory allocator (Michael Bernstein)
|
||||
|
||||
* fix segfault #2473
|
||||
|
||||
* #2521 60% improvement in fs.stat on Windows (Igor Zinkovsky)
|
||||
|
||||
|
||||
2012.01.06, Version 0.6.7 (stable), d5a189acef14a851287ee555f7a39431fe276e1c
|
||||
|
||||
* V8 hash collision fix (Breaks MIPS) (Bert Belder, Erik Corry)
|
||||
|
||||
* Upgrade V8 to 3.6.6.15
|
||||
|
||||
* Upgrade npm to 1.1.0-beta-10 (isaacs)
|
||||
|
||||
* many doc updates (Ben Noordhuis, Jeremy Martin, koichik, Dave Irvine,
|
||||
Seong-Rak Choi, Shannen, Adam Malcontenti-Wilson, koichik)
|
||||
|
||||
* Fix segfault in node_http_parser.cc
|
||||
|
||||
* dgram, timers: fix memory leaks (Ben Noordhuis, Yoshihiro Kikuchi)
|
||||
|
||||
* repl: fix repl.start not passing the `ignoreUndefined` arg (Damon Oehlman)
|
||||
|
||||
* #1980: Socket.pause null reference when called on a closed Stream (koichik)
|
||||
|
||||
* #2263: XMLHttpRequest piped in a writable file stream hang (koichik)
|
||||
|
||||
* #2069: http resource leak (koichik)
|
||||
|
||||
* buffer.readInt global pollution fix (Phil Sung)
|
||||
|
||||
* timers: fix performance regression (Ben Noordhuis)
|
||||
|
||||
* #2308, #2246: node swallows openssl error on request (koichik)
|
||||
|
||||
* #2114: timers: remove _idleTimeout from item in .unenroll() (James Hartig)
|
||||
|
||||
* #2379: debugger: Request backtrace w/o refs (Fedor Indutny)
|
||||
|
||||
* simple DTrace ustack helper (Dave Pacheco)
|
||||
|
||||
* crypto: rewrite HexDecode without snprintf (Roman Shtylman)
|
||||
|
||||
* crypto: don't ignore DH init errors (Ben Noordhuis)
|
||||
|
||||
|
||||
2011.12.14, Version 0.6.6
|
||||
|
||||
* npm update to 1.1.0-beta-4 (Isaac Z. Schlueter)
|
||||
|
||||
* cli: fix output of --help (Ben Noordhuis)
|
||||
|
||||
* new website
|
||||
|
||||
* pause/resume semantics for stdin (Isaac Z. Schlueter)
|
||||
|
||||
* Travis CI integration (Maciej Małecki)
|
||||
|
||||
* child_process: Fix bug regarding closed stdin (Ben Noordhuis)
|
||||
|
||||
* Enable upgrades in MSI. (Igor Zinkovsky)
|
||||
|
||||
* net: Fixes memory leak (Ben Noordhuis)
|
||||
|
||||
* fs: handle fractional or NaN ReadStream buffer size (Ben Noordhuis)
|
||||
|
||||
* crypto: fix memory leaks in PBKDF2 error path (Ben Noordhuis)
|
||||
|
||||
|
||||
2011.12.04, Version 0.6.5 (stable), 6cc94db653a2739ab28e33b2d6a63c51bd986a9f
|
||||
|
||||
* npm workaround Windows antivirus software (isaacs)
|
||||
|
||||
* Upgrade V8 to 3.6.6.11
|
||||
|
||||
|
||||
2011.12.02, Version 0.6.4 (stable), 9170077f13e5e5475b23d1d3c2e7f69bfe139727
|
||||
|
||||
* doc improvements (Kyle Young, Tim Oxley, Roman Shtylman, Mathias Bynens)
|
||||
|
||||
* upgrade bundled npm (Isaac Schlueter)
|
||||
|
||||
* polish Windows installer (Igor Zinkovsky, Isaac Schlueter)
|
||||
|
||||
* punycode: upgrade to v0.2.1 (Mathias Bynens)
|
||||
|
||||
* build: add –without-npm flag to configure script
|
||||
|
||||
* sys: deprecate module some more, print stack trace if NODE_DEBUG=sys
|
||||
|
||||
* cli: add -p switch, prints result of –eval
|
||||
|
||||
* #1997: fix Blowfish ECB encryption and decryption (Ingmar Runge)
|
||||
|
||||
* #2223: fix socket ‘close’ event being emitted twice
|
||||
|
||||
* #2224: fix RSS memory usage > 4 GB reporting (Russ Bradberry)
|
||||
|
||||
* #2225: fix util.inspect() object stringification bug (Nathan Rajlich)
|
||||
|
||||
|
||||
2011.11.25, Version 0.6.3 (stable), b159c6d62e5756d3f8847419d29c6959ea288b56
|
||||
|
||||
* #2083 Land NPM in Node. It is included in packages/installers and installed
|
||||
on `make install`.
|
||||
|
||||
* #2076 Add logos to windows installer.
|
||||
|
||||
* #1711 Correctly handle http requests without headers. (Ben Noordhuis,
|
||||
Felix Geisendörfer)
|
||||
|
||||
* TLS: expose more openssl SSL context options and constants. (Ben Noordhuis)
|
||||
|
||||
* #2177 Windows: don't kill UDP socket when a packet fails to reach its
|
||||
destination. (Bert Belder)
|
||||
|
||||
* Windows: support paths longer than 260 characters. (Igor Zinkovsky)
|
||||
|
||||
* Windows: correctly resolve drive-relative paths. (Bert Belder)
|
||||
|
||||
* #2166 Don't leave file descriptor open after lchmod. (Isaac Schlueter)
|
||||
|
||||
* #2084 Add OS X .pkg build script to make file.
|
||||
|
||||
* #2160 Documentation improvements. (Ben Noordhuis)
|
||||
|
||||
|
||||
2011.11.18, Version 0.6.2 (stable), a4402f0b2e410b19375a1d5c5fb7fe7f66f3c7f8
|
||||
|
||||
* doc improvements (Artur Adib, Trevor Burnham, Ryan Emery, Trent Mick)
|
||||
|
||||
* timers: remember extra setTimeout() arguments when timeout==0
|
||||
|
||||
* punycode: use Mathias Bynens's punycode library, it's more compliant
|
||||
|
||||
* repl: improved tab completion (Ryan Emery)
|
||||
|
||||
* buffer: fix range checks in .writeInt() functions (Lukasz Walukiewicz)
|
||||
|
||||
* tls: make cipher list configurable
|
||||
|
||||
* addons: make Buffer and ObjectWrap visible to Windows add-ons (Bert Belder)
|
||||
|
||||
* crypto: add PKCS#1 a.k.a RSA public key verification support
|
||||
|
||||
* windows: fix stdout writes when redirected to nul
|
||||
|
||||
* sunos: fix build on Solaris and Illumos
|
||||
|
||||
* Upgrade V8 to 3.6.6.8
|
||||
|
||||
|
||||
2011.11.11, Version 0.6.1 (stable), 170f2addb2dd0c625bc4a6d461e89a31ad68b79b
|
||||
|
||||
* doc improvements (Eric Lovett, Ben Noordhuis, Scott Anderson, Yoji SHIDARA)
|
||||
|
||||
@@ -114,7 +543,7 @@
|
||||
* Documentation improvments (Igor Zinkovsky, Bert Belder, Ilya Dmitrichenko,
|
||||
koichik, Maciej Małecki, Guglielmo Ferri, isaacs)
|
||||
|
||||
* Performance improvements (Daniel Ennis, Bert Belder, Ben Noordhuis)
|
||||
* Performance improvements (Daniel Ennis, Bert Belder, Ben Noordhuis)
|
||||
|
||||
* Long process.title support (Ben Noordhuis)
|
||||
|
||||
@@ -370,7 +799,7 @@ koichik, Maciej Małecki, Guglielmo Ferri, isaacs)
|
||||
|
||||
* Fixes https host header default port handling. (Mikeal Rogers)
|
||||
|
||||
* #1440 strip byte order marker when loading *.js and *.json files
|
||||
* #1440 strip byte order marker when loading *.js and *.json files
|
||||
(Ben Noordhuis)
|
||||
|
||||
* #1434 Improve util.format() compatibility with browser. (Koichi Kobayashi)
|
||||
@@ -581,9 +1010,9 @@ koichik, Maciej Małecki, Guglielmo Ferri, isaacs)
|
||||
|
||||
* #829 Backport r8577 from V8 (Ben Noordhuis)
|
||||
|
||||
* #877 Don't wait for HTTP Agent socket pool to establish connections.
|
||||
* #877 Don't wait for HTTP Agent socket pool to establish connections.
|
||||
|
||||
* #915 Find kqueue on FreeBSD correctly (Brett Kiefer)
|
||||
* #915 Find kqueue on FreeBSD correctly (Brett Kiefer)
|
||||
|
||||
* #1085 HTTP: Fix race in abort/dispatch code (Stefan Rusu)
|
||||
|
||||
@@ -980,7 +1409,7 @@ koichik, Maciej Małecki, Guglielmo Ferri, isaacs)
|
||||
|
||||
* HTTPS server
|
||||
|
||||
* Built in debugger 'node debug script.js'
|
||||
* Built in debugger 'node debug script.js'
|
||||
|
||||
* realpath files during module load (Mihai Călin Bazon)
|
||||
|
||||
@@ -1122,7 +1551,7 @@ koichik, Maciej Małecki, Guglielmo Ferri, isaacs)
|
||||
|
||||
* fs bugfixes (Tj Holowaychuk, Tobie Langel, Marco Rogers, isaacs)
|
||||
|
||||
* http bug fixes (Fedor Indutny, Mikeal Rogers)
|
||||
* http bug fixes (Fedor Indutny, Mikeal Rogers)
|
||||
|
||||
* Faster buffers; breaks C++ API (Tim-Smart, Stéphan Kochen)
|
||||
|
||||
@@ -1291,7 +1720,7 @@ koichik, Maciej Małecki, Guglielmo Ferri, isaacs)
|
||||
* Upgrade http-parser, V8 to 2.2.21
|
||||
|
||||
|
||||
2010.06.21, Version 0.1.99, a620b7298f68f68a855306437a3b60b650d61d78
|
||||
2010.06.21, Version 0.1.99, a620b7298f68f68a855306437a3b60b650d61d78
|
||||
|
||||
* Datagram sockets (Paul Querna)
|
||||
|
||||
@@ -1397,7 +1826,7 @@ koichik, Maciej Małecki, Guglielmo Ferri, isaacs)
|
||||
|
||||
2010.05.06, Version 0.1.94, f711d5343b29d1e72e87107315708e40951a7826
|
||||
|
||||
* Look in /usr/local/lib/node for modules, so that there's a way
|
||||
* Look in /usr/local/lib/node for modules, so that there's a way
|
||||
to install modules globally (Issac Schlueter)
|
||||
|
||||
* SSL improvements (Rhys Jones, Paulo Matias)
|
||||
@@ -1417,7 +1846,7 @@ koichik, Maciej Małecki, Guglielmo Ferri, isaacs)
|
||||
* Bugfix: destroy() instead of end() http connection at end of
|
||||
pipeline
|
||||
|
||||
* Bugfix: http.Client may be prematurely released back to the
|
||||
* Bugfix: http.Client may be prematurely released back to the
|
||||
free pool. (Thomas Lee)
|
||||
|
||||
* Upgrade V8 to 2.2.8
|
||||
|
||||
548
LICENSE
548
LICENSE
@@ -24,57 +24,529 @@ IN THE SOFTWARE.
|
||||
====
|
||||
|
||||
This license applies to all parts of Node that are not externally
|
||||
maintained libraries.
|
||||
maintained libraries. The externally maintained libraries used by Node are:
|
||||
|
||||
The externally maintained libraries used by Node are:
|
||||
- V8, located at deps/v8. V8's license follows:
|
||||
"""
|
||||
This license applies to all parts of V8 that are not externally
|
||||
maintained libraries. The externally maintained libraries used by V8
|
||||
are:
|
||||
|
||||
- v8, located at deps/v8. v8 is copyright Google, Inc, and released
|
||||
under a BSD license.
|
||||
- PCRE test suite, located in
|
||||
test/mjsunit/third_party/regexp-pcre.js. This is based on the
|
||||
test suite from PCRE-7.3, which is copyrighted by the University
|
||||
of Cambridge and Google, Inc. The copyright notice and license
|
||||
are embedded in regexp-pcre.js.
|
||||
|
||||
- libev, located at deps/libev, and libeio, located at deps/libeio. libev
|
||||
and libeio are copyright Marc Alexander Lehmann, and dual-licensed
|
||||
under the MIT license and GPL2.
|
||||
- Layout tests, located in test/mjsunit/third_party. These are
|
||||
based on layout tests from webkit.org which are copyrighted by
|
||||
Apple Computer, Inc. and released under a 3-clause BSD license.
|
||||
|
||||
- WAF build system, located at tools/waf. WAF is copyright Thomas Nagy,
|
||||
and released under the MIT license.
|
||||
- Strongtalk assembler, the basis of the files assembler-arm-inl.h,
|
||||
assembler-arm.cc, assembler-arm.h, assembler-ia32-inl.h,
|
||||
assembler-ia32.cc, assembler-ia32.h, assembler-x64-inl.h,
|
||||
assembler-x64.cc, assembler-x64.h, assembler-mips-inl.h,
|
||||
assembler-mips.cc, assembler-mips.h, assembler.cc and assembler.h.
|
||||
This code is copyrighted by Sun Microsystems Inc. and released
|
||||
under a 3-clause BSD license.
|
||||
|
||||
- The SCONS build system, located at tools/scons. SCONS is copyright
|
||||
the SCONS Foundation and released under the MIT license.
|
||||
- Valgrind client API header, located at third_party/valgrind/valgrind.h
|
||||
This is release under the BSD license.
|
||||
|
||||
- C-Ares, an asynchronous DNS client, located at deps/c-ares. C-Ares is
|
||||
copyright the Massachusetts Institute of Technology, authored by
|
||||
Greg Hudson, Daniel Stenberg and others, and released under the MIT
|
||||
license.
|
||||
These libraries have their own licenses; we recommend you read them,
|
||||
as their terms may differ from the terms below.
|
||||
|
||||
- Node, optionally, links to OpenSSL, it is located at deps/openssl.
|
||||
OpenSSL is cryptographic software written by Eric Young
|
||||
(eay@cryptsoft.com) to provide SSL/TLS encryption. OpenSSL is copyright
|
||||
The OpenSSL Project and released under the OpenSSL license.
|
||||
Copyright 2006-2012, the V8 project authors. All rights reserved.
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
- tools/doctool/markdown.js is copyright 2009-2010 Dominic Baggott and Ash
|
||||
Berli and released under the MIT license.
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer in the documentation and/or other materials provided
|
||||
with the distribution.
|
||||
* Neither the name of Google Inc. nor the names of its
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
- HTTP Parser, located at deps/http_parser, is a small C library
|
||||
copyright Ryan Lienhart Dahl and released under the MIT license.
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
"""
|
||||
|
||||
- src/platform_darwin_proctitle.cc, has code taken from the Chromium
|
||||
project copyright Google Inc. and released under a BSD license.
|
||||
- libev, located at deps/uv/src/unix/ev. libev's license follows:
|
||||
"""
|
||||
All files in libev are Copyright (C)2007,2008,2009 Marc Alexander Lehmann.
|
||||
|
||||
- tools/closure_linter is copyright The Closure Linter Authors and
|
||||
Google Inc. and released under the Apache License, version 2.0.
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
- tools/cpplint.py is copyright Google Inc. and released under a
|
||||
BSD license.
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
- lib/buffer_ieee754.js is copyright 2008 Fair Oaks Labs, Inc. and released
|
||||
under the New BSD license.
|
||||
* Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer in the documentation and/or other materials provided
|
||||
with the distribution.
|
||||
|
||||
- lib/punycode.js is copyright 2011 Mathias Bynens <http://mathiasbynens.be/>
|
||||
and released under the MIT license.
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
- tools/gyp GYP is a meta-build system copyright 2009 Google Inc and
|
||||
licensed under the three clause BSD license. See tools/gyp/LICENSE.
|
||||
Alternatively, the contents of this package may be used under the terms
|
||||
of the GNU General Public License ("GPL") version 2 or any later version,
|
||||
in which case the provisions of the GPL are applicable instead of the
|
||||
above. If you wish to allow the use of your version of this package only
|
||||
under the terms of the GPL and not to allow others to use your version of
|
||||
this file under the BSD license, indicate your decision by deleting the
|
||||
provisions above and replace them with the notice and other provisions
|
||||
required by the GPL in this and the other files of this package. If you do
|
||||
not delete the provisions above, a recipient may use your version of this
|
||||
file under either the BSD or the GPL.
|
||||
"""
|
||||
|
||||
- deps/zlib copyright 1995-2010 Jean-loup Gailly and Mark Adler
|
||||
licensed under a permissive free software license. See
|
||||
deps/zlib/LICENSE.
|
||||
- libeio, located at deps/uv/src/unix/eio. libeio's license follows:
|
||||
"""
|
||||
All files in libeio are Copyright (C)2007,2008 Marc Alexander Lehmann.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following
|
||||
disclaimer in the documentation and/or other materials provided
|
||||
with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Alternatively, the contents of this package may be used under the terms
|
||||
of the GNU General Public License ("GPL") version 2 or any later version,
|
||||
in which case the provisions of the GPL are applicable instead of the
|
||||
above. If you wish to allow the use of your version of this package only
|
||||
under the terms of the GPL and not to allow others to use your version of
|
||||
this file under the BSD license, indicate your decision by deleting the
|
||||
provisions above and replace them with the notice and other provisions
|
||||
required by the GPL in this and the other files of this package. If you do
|
||||
not delete the provisions above, a recipient may use your version of this
|
||||
file under either the BSD or the GPL.
|
||||
"""
|
||||
|
||||
- WAF build system, located at tools/waf*. WAF's license follows:
|
||||
"""
|
||||
Copyright Thomas Nagy, 2005-2011
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
3. The name of the author may not be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
|
||||
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
||||
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
"""
|
||||
|
||||
- C-Ares, an asynchronous DNS client, located at deps/uv/src/ares. C-Ares license
|
||||
follows
|
||||
"""
|
||||
/* Copyright 1998 by the Massachusetts Institute of Technology.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this
|
||||
* software and its documentation for any purpose and without
|
||||
* fee is hereby granted, provided that the above copyright
|
||||
* notice appear in all copies and that both that copyright
|
||||
* notice and this permission notice appear in supporting
|
||||
* documentation, and that the name of M.I.T. not be used in
|
||||
* advertising or publicity pertaining to distribution of the
|
||||
* software without specific, written prior permission.
|
||||
* M.I.T. makes no representations about the suitability of
|
||||
* this software for any purpose. It is provided "as is"
|
||||
* without express or implied warranty.
|
||||
"""
|
||||
|
||||
- OpenSSL located at deps/openssl. OpenSSL is cryptographic software written
|
||||
by Eric Young (eay@cryptsoft.com) to provide SSL/TLS encryption. OpenSSL's
|
||||
license follows
|
||||
"""
|
||||
/* ====================================================================
|
||||
* Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3. All advertising materials mentioning features or use of this
|
||||
* software must display the following acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
|
||||
*
|
||||
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
||||
* endorse or promote products derived from this software without
|
||||
* prior written permission. For written permission, please contact
|
||||
* openssl-core@openssl.org.
|
||||
*
|
||||
* 5. Products derived from this software may not be called "OpenSSL"
|
||||
* nor may "OpenSSL" appear in their names without prior written
|
||||
* permission of the OpenSSL Project.
|
||||
*
|
||||
* 6. Redistributions of any form whatsoever must retain the following
|
||||
* acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit (http://www.openssl.org/)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
|
||||
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
||||
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
* ====================================================================
|
||||
*
|
||||
* This product includes cryptographic software written by Eric Young
|
||||
* (eay@cryptsoft.com). This product includes software written by Tim
|
||||
* Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
*/
|
||||
"""
|
||||
|
||||
- HTTP Parser, located at deps/http_parser. HTTP Parser's license follows:
|
||||
"""
|
||||
http_parser.c is based on src/http/ngx_http_parse.c from NGINX copyright
|
||||
Igor Sysoev.
|
||||
|
||||
Additional changes are licensed under the same terms as NGINX and
|
||||
copyright Joyent, Inc. and other Node contributors. All rights reserved.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
"""
|
||||
|
||||
- Closure Linter is located at tools/closure_linter. Closure's license
|
||||
follows
|
||||
"""
|
||||
# Copyright (c) 2007, Google Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are
|
||||
# met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above
|
||||
# copyright notice, this list of conditions and the following disclaimer
|
||||
# in the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
# * Neither the name of Google Inc. nor the names of its
|
||||
# contributors may be used to endorse or promote products derived from
|
||||
# this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
"""
|
||||
|
||||
- tools/cpplint.py is a C++ linter. Its license follows:
|
||||
"""
|
||||
# Copyright (c) 2009 Google Inc. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are
|
||||
# met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above
|
||||
# copyright notice, this list of conditions and the following disclaimer
|
||||
# in the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
# * Neither the name of Google Inc. nor the names of its
|
||||
# contributors may be used to endorse or promote products derived from
|
||||
# this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
"""
|
||||
|
||||
- lib/buffer_ieee754.js. Its license follows:
|
||||
"""
|
||||
// Copyright (c) 2008, Fair Oaks Labs, Inc.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions are met:
|
||||
//
|
||||
// * Redistributions of source code must retain the above copyright notice,
|
||||
// this list of conditions and the following disclaimer.
|
||||
//
|
||||
// * Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// * Neither the name of Fair Oaks Labs, Inc. nor the names of its contributors
|
||||
// may be used to endorse or promote products derived from this software
|
||||
// without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
// POSSIBILITY OF SUCH DAMAGE.
|
||||
"""
|
||||
|
||||
- lib/punycode.js is copyright 2011 Mathias Bynens <http://mathiasbynens.be/>
|
||||
and released under the MIT license.
|
||||
"""
|
||||
* Punycode.js <http://mths.be/punycode>
|
||||
* Copyright 2011 Mathias Bynens <http://mathiasbynens.be/>
|
||||
* Available under MIT license <http://mths.be/mit>
|
||||
"""
|
||||
|
||||
- tools/gyp GYP is a meta-build system. GYP's license follows:
|
||||
"""
|
||||
Copyright (c) 2009 Google Inc. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above
|
||||
copyright notice, this list of conditions and the following disclaimer
|
||||
in the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
* Neither the name of Google Inc. nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
"""
|
||||
|
||||
- Zlib at deps/zlib. zlib's license follows
|
||||
"""
|
||||
/* zlib.h -- interface of the 'zlib' general purpose compression library
|
||||
version 1.2.4, March 14th, 2010
|
||||
|
||||
Copyright (C) 1995-2010 Jean-loup Gailly and Mark Adler
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
|
||||
Jean-loup Gailly
|
||||
Mark Adler
|
||||
|
||||
*/
|
||||
"""
|
||||
|
||||
- npm is a package manager program located at deps/npm.
|
||||
npm's license follows:
|
||||
"""
|
||||
Copyright 2009-2012, Isaac Z. Schlueter (the "Original 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 Original 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
|
||||
Original 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 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.
|
||||
|
||||
This program uses "mkdirp", Copyright (c) 2010 James Halliday,
|
||||
according to the terms of the MIT/X11 license.
|
||||
"""
|
||||
|
||||
- tools/doc/node_modules/marked Marked is a Markdown parser. Marked's
|
||||
license follows
|
||||
"""
|
||||
Copyright (c) 2011-2012, Christopher Jeffrey (https://github.com/chjj/)
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
"""
|
||||
|
||||
138
Makefile
138
Makefile
@@ -1,4 +1,5 @@
|
||||
WAF=python tools/waf-light
|
||||
PYTHON ?= python
|
||||
WAF = $(PYTHON) tools/waf-light
|
||||
|
||||
web_root = node@nodejs.org:~/web/nodejs.org/
|
||||
|
||||
@@ -32,51 +33,69 @@ uninstall:
|
||||
@$(WAF) uninstall
|
||||
|
||||
test: all
|
||||
python tools/test.py --mode=release simple message
|
||||
$(PYTHON) tools/test.py --mode=release simple message
|
||||
|
||||
test-http1: all
|
||||
python tools/test.py --mode=release --use-http1 simple message
|
||||
$(PYTHON) tools/test.py --mode=release --use-http1 simple message
|
||||
|
||||
test-valgrind: all
|
||||
python tools/test.py --mode=release --valgrind simple message
|
||||
$(PYTHON) tools/test.py --mode=release --valgrind simple message
|
||||
|
||||
test-all: all
|
||||
python tools/test.py --mode=debug,release
|
||||
node_modules/weak:
|
||||
@if [ ! -f node ]; then make all; fi
|
||||
@if [ ! -d node_modules ]; then mkdir -p node_modules; fi
|
||||
./node deps/npm/bin/npm-cli.js install weak \
|
||||
--prefix="$(shell pwd)" --unsafe-perm # go ahead and run as root.
|
||||
|
||||
test-gc: all node_modules/weak
|
||||
$(PYTHON) tools/test.py --mode=release gc
|
||||
|
||||
test-all: all node_modules/weak
|
||||
$(PYTHON) tools/test.py --mode=debug,release
|
||||
make test-npm
|
||||
|
||||
test-all-http1: all
|
||||
python tools/test.py --mode=debug,release --use-http1
|
||||
$(PYTHON) tools/test.py --mode=debug,release --use-http1
|
||||
|
||||
test-all-valgrind: all
|
||||
python tools/test.py --mode=debug,release --valgrind
|
||||
$(PYTHON) tools/test.py --mode=debug,release --valgrind
|
||||
|
||||
test-release: all
|
||||
python tools/test.py --mode=release
|
||||
$(PYTHON) tools/test.py --mode=release
|
||||
|
||||
test-debug: all
|
||||
python tools/test.py --mode=debug
|
||||
$(PYTHON) tools/test.py --mode=debug
|
||||
|
||||
test-message: all
|
||||
python tools/test.py message
|
||||
$(PYTHON) tools/test.py message
|
||||
|
||||
test-simple: all
|
||||
python tools/test.py simple
|
||||
$(PYTHON) tools/test.py simple
|
||||
|
||||
test-pummel: all
|
||||
python tools/test.py pummel
|
||||
$(PYTHON) tools/test.py pummel
|
||||
|
||||
test-internet: all
|
||||
python tools/test.py internet
|
||||
$(PYTHON) tools/test.py internet
|
||||
|
||||
test-npm: all
|
||||
./node deps/npm/test/run.js
|
||||
|
||||
test-npm-publish: all
|
||||
npm_package_config_publishtest=true ./node deps/npm/test/run.js
|
||||
|
||||
out/Release/node: all
|
||||
|
||||
apidoc_sources = $(wildcard doc/api/*.markdown)
|
||||
apidocs = $(addprefix out/,$(apidoc_sources:.markdown=.html))
|
||||
apidocs = $(addprefix out/,$(apidoc_sources:.markdown=.html)) \
|
||||
$(addprefix out/,$(apidoc_sources:.markdown=.json))
|
||||
|
||||
apidoc_dirs = out/doc out/doc/api/ out/doc/api/assets
|
||||
apidoc_dirs = out/doc out/doc/api/ out/doc/api/assets out/doc/about out/doc/community out/doc/logos out/doc/images
|
||||
|
||||
apiassets = $(subst api_assets,api/assets,$(addprefix out/,$(wildcard doc/api_assets/*)))
|
||||
|
||||
doc_images = $(addprefix out/,$(wildcard doc/images/* doc/*.jpg doc/*.png))
|
||||
|
||||
website_files = \
|
||||
out/doc/index.html \
|
||||
out/doc/v0.4_announcement.html \
|
||||
@@ -84,15 +103,16 @@ website_files = \
|
||||
out/doc/sh_main.js \
|
||||
out/doc/sh_javascript.min.js \
|
||||
out/doc/sh_vim-dark.css \
|
||||
out/doc/logo.png \
|
||||
out/doc/sponsored.png \
|
||||
out/doc/favicon.ico \
|
||||
out/doc/pipe.css
|
||||
|
||||
doc: doc
|
||||
|
||||
out/doc: out/Release/node $(apidoc_dirs) $(website_files) $(apiassets) $(apidocs)
|
||||
out/doc/sh.css \
|
||||
out/doc/favicon.ico \
|
||||
out/doc/pipe.css \
|
||||
out/doc/about/index.html \
|
||||
out/doc/community/index.html \
|
||||
out/doc/logos/index.html \
|
||||
out/doc/changelog.html \
|
||||
$(doc_images)
|
||||
|
||||
doc: program $(apidoc_dirs) $(website_files) $(apiassets) $(apidocs) tools/doc/
|
||||
|
||||
$(apidoc_dirs):
|
||||
mkdir -p $@
|
||||
@@ -100,16 +120,37 @@ $(apidoc_dirs):
|
||||
out/doc/api/assets/%: doc/api_assets/% out/doc/api/assets/
|
||||
cp $< $@
|
||||
|
||||
out/doc/changelog.html: ChangeLog doc/changelog-head.html doc/changelog-foot.html tools/build-changelog.sh
|
||||
bash tools/build-changelog.sh
|
||||
|
||||
out/doc/%.html: doc/%.html
|
||||
cat $< | sed -e 's|__VERSION__|'$(VERSION)'|g' > $@
|
||||
|
||||
out/doc/%: doc/%
|
||||
cp $< $@
|
||||
cp -r $< $@
|
||||
|
||||
out/doc/api/%.html: doc/api/%.markdown out/Release/node $(apidoc_dirs) $(apiassets) tools/doctool/doctool.js
|
||||
out/Release/node tools/doctool/doctool.js doc/template.html $< > $@
|
||||
out/doc/api/%.json: doc/api/%.markdown
|
||||
out/Release/node tools/doc/generate.js --format=json $< > $@
|
||||
|
||||
out/doc/%:
|
||||
out/doc/api/%.html: doc/api/%.markdown
|
||||
out/Release/node tools/doc/generate.js --format=html --template=doc/template.html $< > $@
|
||||
|
||||
email.md: ChangeLog tools/email-footer.md
|
||||
bash tools/changelog-head.sh | sed 's|^\* #|* \\#|g' > $@
|
||||
cat tools/email-footer.md | sed -e 's|__VERSION__|'$(VERSION)'|g' >> $@
|
||||
|
||||
blog.html: email.md
|
||||
cat $< | ./node tools/doc/node_modules/.bin/marked > $@
|
||||
|
||||
website-upload: doc
|
||||
scp -r out/doc/* $(web_root)
|
||||
rsync -r out/doc/ node@nodejs.org:~/web/nodejs.org/
|
||||
ssh node@nodejs.org '\
|
||||
rm -f ~/web/nodejs.org/dist/latest &&\
|
||||
ln -s $(VERSION) ~/web/nodejs.org/dist/latest &&\
|
||||
rm -f ~/web/nodejs.org/docs/latest &&\
|
||||
ln -s $(VERSION) ~/web/nodejs.org/docs/latest &&\
|
||||
rm -f ~/web/nodejs.org/dist/node-latest.tar.gz &&\
|
||||
ln -s $(VERSION)/node-$(VERSION).tar.gz ~/web/nodejs.org/dist/node-latest.tar.gz'
|
||||
|
||||
docopen: out/doc/api/all.html
|
||||
-google-chrome out/doc/api/all.html
|
||||
@@ -120,26 +161,51 @@ docclean:
|
||||
clean:
|
||||
$(WAF) clean
|
||||
-find tools -name "*.pyc" | xargs rm -f
|
||||
-rm -rf blog.html email.md
|
||||
-rm -rf node_modules
|
||||
|
||||
distclean: docclean
|
||||
-find tools -name "*.pyc" | xargs rm -f
|
||||
-rm -rf dist-osx
|
||||
-rm -rf out/ node node_g
|
||||
-rm -rf blog.html email.md
|
||||
|
||||
check:
|
||||
@tools/waf-light check
|
||||
|
||||
VERSION=v$(shell python tools/getnodeversion.py)
|
||||
VERSION=v$(shell $(PYTHON) tools/getnodeversion.py)
|
||||
TARNAME=node-$(VERSION)
|
||||
TARBALL=$(TARNAME).tar.gz
|
||||
PKG=dist-osx/$(TARNAME).pkg
|
||||
PKG=out/$(TARNAME).pkg
|
||||
|
||||
packagemaker=/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker
|
||||
|
||||
#dist: doc/node.1 doc/api
|
||||
dist: $(TARBALL) $(PKG)
|
||||
|
||||
PKGDIR=out/dist-osx
|
||||
|
||||
pkg: $(PKG)
|
||||
|
||||
$(PKG):
|
||||
-rm -rf dist-osx
|
||||
tools/osx-dist.sh
|
||||
-rm -rf $(PKGDIR)
|
||||
# Need to remove deps between architecture changes.
|
||||
rm -rf out/*/deps
|
||||
$(WAF) configure --prefix=/usr/local --without-snapshot --dest-cpu=ia32
|
||||
CFLAGS=-m32 DESTDIR=$(PKGDIR)/32 $(WAF) install
|
||||
rm -rf out/*/deps
|
||||
$(WAF) configure --prefix=/usr/local --without-snapshot --dest-cpu=x64
|
||||
CFLAGS=-m64 DESTDIR=$(PKGDIR) $(WAF) install
|
||||
lipo $(PKGDIR)/32/usr/local/bin/node \
|
||||
$(PKGDIR)/usr/local/bin/node \
|
||||
-output $(PKGDIR)/usr/local/bin/node-universal \
|
||||
-create
|
||||
mv $(PKGDIR)/usr/local/bin/node-universal $(PKGDIR)/usr/local/bin/node
|
||||
rm -rf $(PKGDIR)/32
|
||||
$(packagemaker) \
|
||||
--id "org.nodejs.NodeJS-$(VERSION)" \
|
||||
--doc tools/osx-pkg.pmdoc \
|
||||
--out $(PKG)
|
||||
|
||||
$(TARBALL): out/doc
|
||||
git archive --format=tar --prefix=$(TARNAME)/ HEAD | tar xf -
|
||||
@@ -147,7 +213,7 @@ $(TARBALL): out/doc
|
||||
cp doc/node.1 $(TARNAME)/doc/node.1
|
||||
cp -r out/doc/api $(TARNAME)/doc/api
|
||||
rm -rf $(TARNAME)/deps/v8/test # too big
|
||||
rm -rf $(TARNAME)/doc/logos # too big
|
||||
rm -rf $(TARNAME)/doc/images # too big
|
||||
tar -cf $(TARNAME).tar $(TARNAME)
|
||||
rm -rf $(TARNAME)
|
||||
gzip -f -9 $(TARNAME).tar
|
||||
@@ -166,10 +232,10 @@ bench-idle:
|
||||
./node benchmark/idle_clients.js &
|
||||
|
||||
jslint:
|
||||
PYTHONPATH=tools/closure_linter/ python tools/closure_linter/closure_linter/gjslint.py --unix_mode --strict --nojsdoc -r lib/ -r src/ -r test/
|
||||
PYTHONPATH=tools/closure_linter/ $(PYTHON) tools/closure_linter/closure_linter/gjslint.py --unix_mode --strict --nojsdoc -r lib/ -r src/ -r test/ --exclude_files lib/punycode.js
|
||||
|
||||
cpplint:
|
||||
@python tools/cpplint.py $(wildcard src/*.cc src/*.h src/*.c)
|
||||
@$(PYTHON) tools/cpplint.py $(wildcard src/*.cc src/*.h src/*.c)
|
||||
|
||||
lint: jslint cpplint
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
Evented I/O for V8 javascript.
|
||||
Evented I/O for V8 javascript. [](http://travis-ci.org/joyent/node)
|
||||
===
|
||||
|
||||
### To build:
|
||||
|
||||
Unix/Macintosh (requires python >= 2.5.2):
|
||||
Unix/Macintosh (requires python 2.6 or 2.7):
|
||||
|
||||
./configure
|
||||
make
|
||||
|
||||
@@ -54,6 +54,12 @@ var server = http.createServer(function (req, res) {
|
||||
} else if (command == "fixed") {
|
||||
body = fixed;
|
||||
|
||||
} else if (command == "echo") {
|
||||
res.writeHead(200, { "Content-Type": "text/plain",
|
||||
"Transfer-Encoding": "chunked" });
|
||||
req.pipe(res);
|
||||
return;
|
||||
|
||||
} else {
|
||||
status = 404;
|
||||
body = "not found\n";
|
||||
|
||||
109
benchmark/http_simple_auto.js
Normal file
109
benchmark/http_simple_auto.js
Normal file
@@ -0,0 +1,109 @@
|
||||
//
|
||||
// Usage:
|
||||
// node benchmark/http_simple_auto.js <args> <target>
|
||||
//
|
||||
// Where:
|
||||
// <args> Arguments to pass to `ab`.
|
||||
// <target> Target to benchmark, e.g. `bytes/1024` or `buffer/8192`.
|
||||
//
|
||||
|
||||
var path = require("path");
|
||||
var http = require("http");
|
||||
var spawn = require("child_process").spawn;
|
||||
|
||||
var port = parseInt(process.env.PORT || 8000);
|
||||
|
||||
var fixed = ""
|
||||
for (var i = 0; i < 20*1024; i++) {
|
||||
fixed += "C";
|
||||
}
|
||||
|
||||
var stored = {};
|
||||
var storedBuffer = {};
|
||||
|
||||
var server = http.createServer(function (req, res) {
|
||||
var commands = req.url.split("/");
|
||||
var command = commands[1];
|
||||
var body = "";
|
||||
var arg = commands[2];
|
||||
var n_chunks = parseInt(commands[3], 10);
|
||||
var status = 200;
|
||||
|
||||
if (command == "bytes") {
|
||||
var n = parseInt(arg, 10)
|
||||
if (n <= 0)
|
||||
throw "bytes called with n <= 0"
|
||||
if (stored[n] === undefined) {
|
||||
stored[n] = "";
|
||||
for (var i = 0; i < n; i++) {
|
||||
stored[n] += "C"
|
||||
}
|
||||
}
|
||||
body = stored[n];
|
||||
|
||||
} else if (command == "buffer") {
|
||||
var n = parseInt(arg, 10)
|
||||
if (n <= 0) throw new Error("bytes called with n <= 0");
|
||||
if (storedBuffer[n] === undefined) {
|
||||
storedBuffer[n] = new Buffer(n);
|
||||
for (var i = 0; i < n; i++) {
|
||||
storedBuffer[n][i] = "C".charCodeAt(0);
|
||||
}
|
||||
}
|
||||
body = storedBuffer[n];
|
||||
|
||||
} else if (command == "quit") {
|
||||
res.connection.server.close();
|
||||
body = "quitting";
|
||||
|
||||
} else if (command == "fixed") {
|
||||
body = fixed;
|
||||
|
||||
} else if (command == "echo") {
|
||||
res.writeHead(200, { "Content-Type": "text/plain",
|
||||
"Transfer-Encoding": "chunked" });
|
||||
req.pipe(res);
|
||||
return;
|
||||
|
||||
} else {
|
||||
status = 404;
|
||||
body = "not found\n";
|
||||
}
|
||||
|
||||
// example: http://localhost:port/bytes/512/4
|
||||
// sends a 512 byte body in 4 chunks of 128 bytes
|
||||
if (n_chunks > 0) {
|
||||
res.writeHead(status, { "Content-Type": "text/plain",
|
||||
"Transfer-Encoding": "chunked" });
|
||||
// send body in chunks
|
||||
var len = body.length;
|
||||
var step = ~~(len / n_chunks) || len;
|
||||
|
||||
for (var i = 0; i < len; i += step) {
|
||||
res.write(body.slice(i, i + step));
|
||||
}
|
||||
|
||||
res.end();
|
||||
} else {
|
||||
var content_length = body.length.toString();
|
||||
|
||||
res.writeHead(status, { "Content-Type": "text/plain",
|
||||
"Content-Length": content_length });
|
||||
res.end(body);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
server.listen(port, function () {
|
||||
var url = 'http://127.0.0.1:' + port + '/';
|
||||
|
||||
var n = process.argv.length - 1;
|
||||
process.argv[n] = url + process.argv[n];
|
||||
|
||||
var cp = spawn('ab', process.argv.slice(2));
|
||||
cp.stdout.pipe(process.stdout);
|
||||
cp.stderr.pipe(process.stderr);
|
||||
cp.on('exit', function() {
|
||||
server.close();
|
||||
});
|
||||
});
|
||||
@@ -3,7 +3,7 @@ var os = require('os');
|
||||
|
||||
if (cluster.isMaster) {
|
||||
console.log('master running on pid %d', process.pid);
|
||||
for (var i = 1, n = os.cpus().length; i < n; ++i) cluster.fork();
|
||||
for (var i = 0, n = os.cpus().length; i < n; ++i) cluster.fork();
|
||||
} else {
|
||||
require(__dirname + '/http_simple.js');
|
||||
}
|
||||
|
||||
@@ -51,7 +51,6 @@ static void writetest(int size, size_t bsize)
|
||||
exit(254);
|
||||
}
|
||||
}
|
||||
close(fd);
|
||||
|
||||
#ifndef NSYNC
|
||||
# ifdef __linux__
|
||||
@@ -61,6 +60,8 @@ static void writetest(int size, size_t bsize)
|
||||
# endif
|
||||
#endif /* SYNC */
|
||||
|
||||
close(fd);
|
||||
|
||||
end = now();
|
||||
elapsed = (end - start) / 1e6;
|
||||
mbps = ((tsize/elapsed)) / 1048576;
|
||||
|
||||
41
benchmark/next-tick-2.js
Normal file
41
benchmark/next-tick-2.js
Normal file
@@ -0,0 +1,41 @@
|
||||
// Copyright Joyent, Inc. and other Node contributors.
|
||||
//
|
||||
// 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.
|
||||
//
|
||||
// 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.
|
||||
|
||||
var count = 2e6,
|
||||
left = count,
|
||||
start;
|
||||
|
||||
function onNextTick() {
|
||||
if (--left) {
|
||||
process.nextTick(onNextTick);
|
||||
} else {
|
||||
finalize();
|
||||
}
|
||||
}
|
||||
|
||||
function finalize() {
|
||||
var duration = (new Date()).getTime() - start,
|
||||
ticksPerSec = count / duration * 1000;
|
||||
console.log("nextTick callbacks per second: " + Math.round(ticksPerSec));
|
||||
}
|
||||
|
||||
start = (new Date()).getTime();
|
||||
process.nextTick(onNextTick);
|
||||
19
common.gypi
19
common.gypi
@@ -1,8 +1,6 @@
|
||||
{
|
||||
'variables': {
|
||||
'visibility%': 'hidden', # V8's visibility setting
|
||||
'target_arch%': 'ia32', # set v8's target architecture
|
||||
'host_arch%': 'ia32', # set v8's host architecture
|
||||
'library%': 'static_library', # allow override to 'shared_library' for DLL/.so builds
|
||||
'component%': 'static_library', # NB. these names match with what V8 expects
|
||||
'msvs_multi_core_compile': '0', # we do enable multicore compiles, but not using the V8 way
|
||||
@@ -14,6 +12,11 @@
|
||||
'Debug': {
|
||||
'defines': [ 'DEBUG', '_DEBUG' ],
|
||||
'cflags': [ '-g', '-O0' ],
|
||||
'conditions': [
|
||||
['target_arch=="x64"', {
|
||||
'msvs_configuration_platform': 'x64',
|
||||
}],
|
||||
],
|
||||
'msvs_settings': {
|
||||
'VCCLCompilerTool': {
|
||||
'target_conditions': [
|
||||
@@ -24,7 +27,7 @@
|
||||
}],
|
||||
],
|
||||
'Optimization': 0, # /Od, no optimization
|
||||
'MinimalRebuild': 'true',
|
||||
'MinimalRebuild': 'false',
|
||||
'OmitFramePointers': 'false',
|
||||
'BasicRuntimeChecks': 3, # /RTC1
|
||||
},
|
||||
@@ -36,6 +39,11 @@
|
||||
'Release': {
|
||||
'defines': [ 'NDEBUG' ],
|
||||
'cflags': [ '-O3', '-fomit-frame-pointer', '-fdata-sections', '-ffunction-sections' ],
|
||||
'conditions': [
|
||||
['target_arch=="x64"', {
|
||||
'msvs_configuration_platform': 'x64',
|
||||
}],
|
||||
],
|
||||
'msvs_settings': {
|
||||
'VCCLCompilerTool': {
|
||||
'target_conditions': [
|
||||
@@ -83,6 +91,11 @@
|
||||
'VCLibrarianTool': {
|
||||
},
|
||||
'VCLinkerTool': {
|
||||
'conditions': [
|
||||
['target_arch=="x64"', {
|
||||
'TargetMachine' : 17 # /MACHINE:X64
|
||||
}],
|
||||
],
|
||||
'GenerateDebugInformation': 'true',
|
||||
'RandomizedBaseAddress': 2, # enable ASLR
|
||||
'DataExecutionPrevention': 2, # enable DEP
|
||||
|
||||
6
configure
vendored
6
configure
vendored
@@ -7,6 +7,10 @@ if [ ! -z "`echo $CC | grep ccache`" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$PYTHON" ]; then
|
||||
PYTHON=python
|
||||
fi
|
||||
|
||||
CUR_DIR=$PWD
|
||||
|
||||
#possible relative path
|
||||
@@ -16,6 +20,6 @@ cd "$WORKINGDIR"
|
||||
WORKINGDIR=`pwd`
|
||||
cd "$CUR_DIR"
|
||||
|
||||
"${WORKINGDIR}/tools/waf-light" --jobs=1 configure $*
|
||||
"$PYTHON" "${WORKINGDIR}/tools/waf-light" --jobs=1 configure $*
|
||||
|
||||
exit $?
|
||||
|
||||
3
deps/http_parser/.gitignore
vendored
3
deps/http_parser/.gitignore
vendored
@@ -3,6 +3,3 @@ tags
|
||||
test
|
||||
test_g
|
||||
test_fast
|
||||
http_parser.Makefile
|
||||
http_parser.target.mk
|
||||
test.target.mk
|
||||
|
||||
2
deps/http_parser/CMakeLists.txt
vendored
2
deps/http_parser/CMakeLists.txt
vendored
@@ -1,2 +0,0 @@
|
||||
include_directories (.)
|
||||
add_library (http_parser http_parser.c)
|
||||
36
deps/http_parser/http_parser.c
vendored
36
deps/http_parser/http_parser.c
vendored
@@ -370,6 +370,13 @@ size_t http_parser_execute (http_parser *parser,
|
||||
uint64_t index = parser->index;
|
||||
uint64_t nread = parser->nread;
|
||||
|
||||
/* technically we could combine all of these (except for url_mark) into one
|
||||
variable, saving stack space, but it seems more clear to have them
|
||||
separated. */
|
||||
const char *header_field_mark = 0;
|
||||
const char *header_value_mark = 0;
|
||||
const char *url_mark = 0;
|
||||
|
||||
/* We're in an error state. Don't bother doing anything. */
|
||||
if (HTTP_PARSER_ERRNO(parser) != HPE_OK) {
|
||||
return 0;
|
||||
@@ -396,12 +403,6 @@ size_t http_parser_execute (http_parser *parser,
|
||||
}
|
||||
}
|
||||
|
||||
/* technically we could combine all of these (except for url_mark) into one
|
||||
variable, saving stack space, but it seems more clear to have them
|
||||
separated. */
|
||||
const char *header_field_mark = 0;
|
||||
const char *header_value_mark = 0;
|
||||
const char *url_mark = 0;
|
||||
|
||||
if (state == s_header_field)
|
||||
header_field_mark = data;
|
||||
@@ -432,6 +433,9 @@ size_t http_parser_execute (http_parser *parser,
|
||||
/* this state is used after a 'Connection: close' message
|
||||
* the parser will error out if it reads another message
|
||||
*/
|
||||
if (ch == CR || ch == LF)
|
||||
break;
|
||||
|
||||
SET_ERRNO(HPE_CLOSED_CONNECTION);
|
||||
goto error;
|
||||
|
||||
@@ -514,7 +518,7 @@ size_t http_parser_execute (http_parser *parser,
|
||||
break;
|
||||
|
||||
case s_res_first_http_major:
|
||||
if (ch < '1' || ch > '9') {
|
||||
if (ch < '0' || ch > '9') {
|
||||
SET_ERRNO(HPE_INVALID_VERSION);
|
||||
goto error;
|
||||
}
|
||||
@@ -690,12 +694,13 @@ size_t http_parser_execute (http_parser *parser,
|
||||
|
||||
case s_req_method:
|
||||
{
|
||||
const char *matcher;
|
||||
if (ch == '\0') {
|
||||
SET_ERRNO(HPE_INVALID_METHOD);
|
||||
goto error;
|
||||
}
|
||||
|
||||
const char *matcher = method_strings[parser->method];
|
||||
matcher = method_strings[parser->method];
|
||||
if (ch == ' ' && matcher[index] == '\0') {
|
||||
state = s_req_spaces_before_url;
|
||||
} else if (ch == matcher[index]) {
|
||||
@@ -1731,9 +1736,20 @@ http_should_keep_alive (http_parser *parser)
|
||||
/* HTTP/1.1 */
|
||||
if (parser->flags & F_CONNECTION_CLOSE) {
|
||||
return 0;
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
if (parser->type == HTTP_RESPONSE) {
|
||||
/* See RFC 2616 section 4.4 */
|
||||
if (parser->status_code / 100 == 1 || /* 1xx e.g. Continue */
|
||||
parser->status_code == 204 || /* No Content */
|
||||
parser->status_code == 304 || /* Not Modified */
|
||||
parser->flags & F_SKIPBODY) { /* response to a HEAD request */
|
||||
return 1;
|
||||
}
|
||||
if (!(parser->flags & F_CHUNKED) && parser->content_length == -1) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
} else {
|
||||
/* HTTP/1.0 or earlier */
|
||||
if (parser->flags & F_CONNECTION_KEEP_ALIVE) {
|
||||
|
||||
61
deps/http_parser/http_parser.gyp
vendored
61
deps/http_parser/http_parser.gyp
vendored
@@ -5,24 +5,69 @@
|
||||
# ./gyp/gyp -f make --depth=`pwd` http_parser.gyp
|
||||
# ./out/Debug/test
|
||||
{
|
||||
'target_defaults': {
|
||||
'default_configuration': 'Debug',
|
||||
'configurations': {
|
||||
# TODO: hoist these out and put them somewhere common, because
|
||||
# RuntimeLibrary MUST MATCH across the entire project
|
||||
'Debug': {
|
||||
'defines': [ 'DEBUG', '_DEBUG' ],
|
||||
'msvs_settings': {
|
||||
'VCCLCompilerTool': {
|
||||
'RuntimeLibrary': 1, # static debug
|
||||
},
|
||||
},
|
||||
},
|
||||
'Release': {
|
||||
'defines': [ 'NDEBUG' ],
|
||||
'msvs_settings': {
|
||||
'VCCLCompilerTool': {
|
||||
'RuntimeLibrary': 0, # static release
|
||||
},
|
||||
},
|
||||
}
|
||||
},
|
||||
'msvs_settings': {
|
||||
'VCCLCompilerTool': {
|
||||
},
|
||||
'VCLibrarianTool': {
|
||||
},
|
||||
'VCLinkerTool': {
|
||||
'GenerateDebugInformation': 'true',
|
||||
},
|
||||
},
|
||||
'conditions': [
|
||||
['OS == "win"', {
|
||||
'defines': [
|
||||
'WIN32'
|
||||
],
|
||||
}]
|
||||
],
|
||||
},
|
||||
|
||||
'targets': [
|
||||
{
|
||||
'target_name': 'http_parser',
|
||||
'type': '<(library)',
|
||||
'type': 'static_library',
|
||||
'include_dirs': [ '.' ],
|
||||
'direct_dependent_settings': {
|
||||
'include_dirs': [ '.' ],
|
||||
},
|
||||
'defines': [ 'HTTP_PARSER_STRICT=0' ],
|
||||
'sources': [ './http_parser.c', ],
|
||||
'msvs_settings': {
|
||||
'VCCLCompilerTool': {
|
||||
# Compile as C++. http_parser.c is actually C99, but C++ is
|
||||
# close enough in this case.
|
||||
'CompileAs': 2, # compile as C++
|
||||
},
|
||||
},
|
||||
'conditions': [
|
||||
['OS=="win"', {
|
||||
'msvs_settings': {
|
||||
'VCCLCompilerTool': {
|
||||
# Compile as C++. http_parser.c is actually C99, but C++ is
|
||||
# close enough in this case.
|
||||
'CompileAs': 2,
|
||||
},
|
||||
},
|
||||
}]
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
'target_name': 'test',
|
||||
'type': 'executable',
|
||||
|
||||
4
deps/http_parser/http_parser.h
vendored
4
deps/http_parser/http_parser.h
vendored
@@ -28,7 +28,7 @@ extern "C" {
|
||||
#define HTTP_PARSER_VERSION_MINOR 0
|
||||
|
||||
#include <sys/types.h>
|
||||
#if defined(_WIN32) && !defined(__MINGW32__) && !defined(_MSC_VER)
|
||||
#if defined(_WIN32) && !defined(__MINGW32__) && (!defined(_MSC_VER) || _MSC_VER<1600)
|
||||
typedef __int8 int8_t;
|
||||
typedef unsigned __int8 uint8_t;
|
||||
typedef __int16 int16_t;
|
||||
@@ -222,7 +222,7 @@ struct http_parser {
|
||||
* Should be checked when http_parser_execute() returns in addition to
|
||||
* error checking.
|
||||
*/
|
||||
char upgrade : 1;
|
||||
unsigned char upgrade : 1;
|
||||
|
||||
#if HTTP_PARSER_DEBUG
|
||||
uint32_t error_lineno;
|
||||
|
||||
114
deps/http_parser/test.c
vendored
114
deps/http_parser/test.c
vendored
@@ -680,6 +680,56 @@ const struct message requests[] =
|
||||
,.body= ""
|
||||
}
|
||||
|
||||
/* see https://github.com/ry/http-parser/issues/47 */
|
||||
#define EAT_TRAILING_CRLF_NO_CONNECTION_CLOSE 28
|
||||
, {.name = "eat CRLF between requests, no \"Connection: close\" header"
|
||||
,.raw= "POST / HTTP/1.1\r\n"
|
||||
"Host: www.example.com\r\n"
|
||||
"Content-Type: application/x-www-form-urlencoded\r\n"
|
||||
"Content-Length: 4\r\n"
|
||||
"\r\n"
|
||||
"q=42\r\n" /* note the trailing CRLF */
|
||||
,.should_keep_alive= TRUE
|
||||
,.message_complete_on_eof= FALSE
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.method= HTTP_POST
|
||||
,.request_url= "/"
|
||||
,.num_headers= 3
|
||||
,.upgrade= 0
|
||||
,.headers= { { "Host", "www.example.com" }
|
||||
, { "Content-Type", "application/x-www-form-urlencoded" }
|
||||
, { "Content-Length", "4" }
|
||||
}
|
||||
,.body= "q=42"
|
||||
}
|
||||
|
||||
/* see https://github.com/ry/http-parser/issues/47 */
|
||||
#define EAT_TRAILING_CRLF_WITH_CONNECTION_CLOSE 29
|
||||
, {.name = "eat CRLF between requests even if \"Connection: close\" is set"
|
||||
,.raw= "POST / HTTP/1.1\r\n"
|
||||
"Host: www.example.com\r\n"
|
||||
"Content-Type: application/x-www-form-urlencoded\r\n"
|
||||
"Content-Length: 4\r\n"
|
||||
"Connection: close\r\n"
|
||||
"\r\n"
|
||||
"q=42\r\n" /* note the trailing CRLF */
|
||||
,.should_keep_alive= FALSE
|
||||
,.message_complete_on_eof= FALSE /* input buffer isn't empty when on_message_complete is called */
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.method= HTTP_POST
|
||||
,.request_url= "/"
|
||||
,.num_headers= 4
|
||||
,.upgrade= 0
|
||||
,.headers= { { "Host", "www.example.com" }
|
||||
, { "Content-Type", "application/x-www-form-urlencoded" }
|
||||
, { "Content-Length", "4" }
|
||||
, { "Connection", "close" }
|
||||
}
|
||||
,.body= "q=42"
|
||||
}
|
||||
|
||||
, {.name= NULL } /* sentinel */
|
||||
};
|
||||
|
||||
@@ -780,8 +830,8 @@ const struct message responses[] =
|
||||
, {.name= "404 no headers no body"
|
||||
,.type= HTTP_RESPONSE
|
||||
,.raw= "HTTP/1.1 404 Not Found\r\n\r\n"
|
||||
,.should_keep_alive= TRUE
|
||||
,.message_complete_on_eof= FALSE
|
||||
,.should_keep_alive= FALSE
|
||||
,.message_complete_on_eof= TRUE
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.status_code= 404
|
||||
@@ -795,8 +845,8 @@ const struct message responses[] =
|
||||
, {.name= "301 no response phrase"
|
||||
,.type= HTTP_RESPONSE
|
||||
,.raw= "HTTP/1.1 301\r\n\r\n"
|
||||
,.should_keep_alive = TRUE
|
||||
,.message_complete_on_eof= FALSE
|
||||
,.should_keep_alive = FALSE
|
||||
,.message_complete_on_eof= TRUE
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.status_code= 301
|
||||
@@ -1041,6 +1091,60 @@ const struct message responses[] =
|
||||
,.body= ""
|
||||
}
|
||||
|
||||
#define HTTP_VERSION_0_9 12
|
||||
/* Should handle HTTP/0.9 */
|
||||
, {.name= "http version 0.9"
|
||||
,.type= HTTP_RESPONSE
|
||||
,.raw= "HTTP/0.9 200 OK\r\n"
|
||||
"\r\n"
|
||||
,.should_keep_alive= FALSE
|
||||
,.message_complete_on_eof= TRUE
|
||||
,.http_major= 0
|
||||
,.http_minor= 9
|
||||
,.status_code= 200
|
||||
,.num_headers= 0
|
||||
,.headers=
|
||||
{}
|
||||
,.body= ""
|
||||
}
|
||||
|
||||
#define NO_CONTENT_LENGTH_NO_TRANSFER_ENCODING_RESPONSE 13
|
||||
/* The client should wait for the server's EOF. That is, when neither
|
||||
* content-length nor transfer-encoding is specified, the end of body
|
||||
* is specified by the EOF.
|
||||
*/
|
||||
, {.name= "neither content-length nor transfer-encoding response"
|
||||
,.type= HTTP_RESPONSE
|
||||
,.raw= "HTTP/1.1 200 OK\r\n"
|
||||
"Content-Type: text/plain\r\n"
|
||||
"\r\n"
|
||||
"hello world"
|
||||
,.should_keep_alive= FALSE
|
||||
,.message_complete_on_eof= TRUE
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.status_code= 200
|
||||
,.num_headers= 1
|
||||
,.headers=
|
||||
{ { "Content-Type", "text/plain" }
|
||||
}
|
||||
,.body= "hello world"
|
||||
}
|
||||
|
||||
#define NO_HEADERS_NO_BODY_204 14
|
||||
, {.name= "204 no headers no body"
|
||||
,.type= HTTP_RESPONSE
|
||||
,.raw= "HTTP/1.1 204 No Content\r\n\r\n"
|
||||
,.should_keep_alive= TRUE
|
||||
,.message_complete_on_eof= FALSE
|
||||
,.http_major= 1
|
||||
,.http_minor= 1
|
||||
,.status_code= 204
|
||||
,.num_headers= 0
|
||||
,.headers= {}
|
||||
,.body_size= 0
|
||||
,.body= ""
|
||||
}
|
||||
|
||||
, {.name= NULL } /* sentinel */
|
||||
};
|
||||
@@ -1872,7 +1976,7 @@ main (void)
|
||||
|
||||
printf("response scan 1/2 ");
|
||||
test_scan( &responses[TRAILING_SPACE_ON_CHUNKED_BODY]
|
||||
, &responses[NO_HEADERS_NO_BODY_404]
|
||||
, &responses[NO_HEADERS_NO_BODY_204]
|
||||
, &responses[NO_REASON_PHRASE]
|
||||
);
|
||||
|
||||
|
||||
20
deps/npm/.npmignore
vendored
Normal file
20
deps/npm/.npmignore
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
*.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
|
||||
.gitignore
|
||||
release/
|
||||
|
||||
# don't need these in the npm package.
|
||||
html/*.png
|
||||
|
||||
# don't ignore .npmignore files
|
||||
# these are used in some tests.
|
||||
!.npmignore
|
||||
4
deps/npm/.travis.yml
vendored
Normal file
4
deps/npm/.travis.yml
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
language: node_js
|
||||
before_install: "make &>out || cat out; rm out"
|
||||
node_js:
|
||||
- 0.6
|
||||
68
deps/npm/AUTHORS
vendored
Normal file
68
deps/npm/AUTHORS
vendored
Normal file
@@ -0,0 +1,68 @@
|
||||
# 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>
|
||||
Gautham Pai <buzypi@gmail.com>
|
||||
David Trejo <david.daniel.trejo@gmail.com>
|
||||
Paul Vorbach <paul@vorb.de>
|
||||
George Ornbo <george@shapeshed.com>
|
||||
Tim Oxley <secoif@gmail.com>
|
||||
Tyler Green <tyler.green2@gmail.com>
|
||||
atomizer <danila.gerasimov@gmail.com>
|
||||
Rod Vagg <rod@vagg.org>
|
||||
Christian Howe <coderarity@gmail.com>
|
||||
Andrew Lunny <alunny@gmail.com>
|
||||
Henrik Hodne <dvyjones@binaryhex.com>
|
||||
Adam Blackburn <regality@gmail.com>
|
||||
Kris Windham <kriswindham@gmail.com>
|
||||
Jens Grunert <jens.grunert@gmail.com>
|
||||
Joost-Wim Boekesteijn <joost-wim@boekesteijn.nl>
|
||||
Dalmais Maxence <github@maxired.fr>
|
||||
Marcus Ekwall <marcus.ekwall@gmail.com>
|
||||
Aaron Stacy <aaron.r.stacy@gmail.com>
|
||||
59
deps/npm/LICENSE
vendored
Normal file
59
deps/npm/LICENSE
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
Copyright 2009-2012, Isaac Z. Schlueter (the "Original 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 Original 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
|
||||
Original 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 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.
|
||||
|
||||
This program uses "mkdirp", Copyright (c) 2010 James Halliday,
|
||||
according to the terms of the MIT/X11 license.
|
||||
136
deps/npm/Makefile
vendored
Normal file
136
deps/npm/Makefile
vendored
Normal file
@@ -0,0 +1,136 @@
|
||||
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: doc
|
||||
|
||||
latest:
|
||||
@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:
|
||||
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/.bin/ronn:
|
||||
node cli.js install https://github.com/isaacs/ronnjs/tarball/master
|
||||
|
||||
doc: man
|
||||
|
||||
man: $(cli_docs) $(api_docs)
|
||||
|
||||
test:
|
||||
node cli.js test
|
||||
|
||||
version: link
|
||||
git add package.json &&\
|
||||
git ci -m v$(shell npm -v)
|
||||
|
||||
publish: link doc
|
||||
@git tag -d v$(shell npm -v) || true
|
||||
@git push origin :v$(shell npm -v) || true
|
||||
@npm unpublish npm@$(shell npm -v) || true
|
||||
git clean -fd
|
||||
git tag -s -m v$(shell npm -v) v$(shell npm -v) &&\
|
||||
git push origin --tags &&\
|
||||
npm publish &&\
|
||||
npm tag npm@$(shell npm -v) $(shell npm -v | awk -F. '{print $$1 "." $$2}') &&\
|
||||
make doc-publish &&\
|
||||
make zip-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
|
||||
rsync -vazu --stats --no-implied-dirs --delete html/webfonts/ npmjs.org:/var/www/npmjs.org/public/webfonts
|
||||
scp html/style.css npmjs.org:/var/www/npmjs.org/public/
|
||||
|
||||
zip-publish: release
|
||||
scp release/* npmjs.org:/var/www/npmjs.org/public/dist/
|
||||
|
||||
release:
|
||||
@bash scripts/release.sh
|
||||
|
||||
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 release zip-publish
|
||||
266
deps/npm/README.md
vendored
Normal file
266
deps/npm/README.md
vendored
Normal file
@@ -0,0 +1,266 @@
|
||||
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.6 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.
|
||||
|
||||
## Super Easy Install
|
||||
|
||||
npm comes with node now.
|
||||
|
||||
### Windows Computers
|
||||
|
||||
Get the MSI. npm is in it.
|
||||
|
||||
### Apple Macintosh Computers
|
||||
|
||||
Get the pkg. npm is in it.
|
||||
|
||||
### Other Sorts of Unices
|
||||
|
||||
Run `make install`. npm will be installed with node.
|
||||
|
||||
If you want a more fancy pants install (a different version, customized
|
||||
paths, etc.) then read on.
|
||||
|
||||
## Fancy Install (Unix)
|
||||
|
||||
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, you'll need to **run** the script as root.
|
||||
(Note, just putting `sudo` in front of the `curl` will **fetch** the script
|
||||
as root.)
|
||||
|
||||
### Slightly Fancier
|
||||
|
||||
You can set any npm configuration params with that script:
|
||||
|
||||
curl http://npmjs.org/install.sh | npm_config_prefix=/some/path sh
|
||||
|
||||
Or, you can run it in uber-debuggery mode:
|
||||
|
||||
curl http://npmjs.org/install.sh | npm_debug=1 sh
|
||||
|
||||
### Even Fancier
|
||||
|
||||
Get the code with git. Use `make` to build the docs and do other stuff.
|
||||
If you plan on hacking on npm, `make link` is your friend.
|
||||
|
||||
If you've got the npm source code, you can also semi-permanently set
|
||||
arbitrary config keys using the `./configure --key=val ...`, and then
|
||||
run npm commands by doing `node cli.js <cmd> <args>`. (This is helpful
|
||||
for testing, or running stuff without actually installing npm itself.)
|
||||
|
||||
## Fancy Windows Install
|
||||
|
||||
You can download a zip file from <http://npmjs.org/dist/>, and unpack it
|
||||
in the same folder where node.exe lives.
|
||||
|
||||
If that's not fancy enough for you, then you can fetch the code with
|
||||
git, and mess with it directly.
|
||||
|
||||
## 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.
|
||||
|
||||
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.
|
||||
|
||||
## 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.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm(1)
|
||||
* npm-faq(1)
|
||||
* npm-help(1)
|
||||
* npm-index(1)
|
||||
2
deps/npm/bin/node-gyp-bin/node-gyp
vendored
Executable file
2
deps/npm/bin/node-gyp-bin/node-gyp
vendored
Executable file
@@ -0,0 +1,2 @@
|
||||
#!/usr/bin/env sh
|
||||
node "`dirname "$0"`/../../node_modules/node-gyp/bin/node-gyp.js" "$@"
|
||||
1
deps/npm/bin/node-gyp-bin/node-gyp.cmd
vendored
Executable file
1
deps/npm/bin/node-gyp-bin/node-gyp.cmd
vendored
Executable file
@@ -0,0 +1 @@
|
||||
node "%~dp0\..\..\node_modules\node-gyp\bin\node-gyp.js" %*
|
||||
6
deps/npm/bin/npm
vendored
Executable file
6
deps/npm/bin/npm
vendored
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
if [ -x "`dirname "$0"`/node.exe" ]; then
|
||||
"`dirname "$0"`/node.exe" "`dirname "$0"`/node_modules/npm/bin/npm-cli.js" "$@"
|
||||
else
|
||||
node "`dirname "$0"`/node_modules/npm/bin/npm-cli.js" "$@"
|
||||
fi
|
||||
87
deps/npm/bin/npm-cli.js
vendored
Executable file
87
deps/npm/bin/npm-cli.js
vendored
Executable file
@@ -0,0 +1,87 @@
|
||||
#!/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
|
||||
}
|
||||
|
||||
|
||||
process.title = "npm"
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
if (conf.versions) {
|
||||
var v = process.versions
|
||||
v.npm = npm.version
|
||||
console.log(v)
|
||||
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.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" %*
|
||||
)
|
||||
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
|
||||
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.
|
||||
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.
|
||||
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
|
||||
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`
|
||||
56
deps/npm/doc/api/ls.md
vendored
Normal file
56
deps/npm/doc/api/ls.md
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
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.
|
||||
|
||||
Callback is provided an error if one occurred, the full data about which
|
||||
packages are installed and which dependencies they will receive, and a
|
||||
"lite" data object which just shows which versions are installed where.
|
||||
Note that the full data object is a circular structure, so care must be
|
||||
taken if it is serialized to JSON.
|
||||
|
||||
## 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)
|
||||
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).
|
||||
20
deps/npm/doc/api/shrinkwrap.md
vendored
Normal file
20
deps/npm/doc/api/shrinkwrap.md
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
npm-shrinkwrap(3) -- programmatically generate package shrinkwrap file
|
||||
====================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
npm.commands.shrinkwrap(args, [silent,] callback)
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This acts much the same ways as shrinkwrapping on the command-line.
|
||||
|
||||
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.
|
||||
|
||||
If the 'silent' parameter is set to true, nothing will be output to the screen,
|
||||
but the shrinkwrap file will still be written.
|
||||
|
||||
Finally, 'callback' is a function that will be called when the shrinkwrap has
|
||||
been saved.
|
||||
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)
|
||||
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)
|
||||
80
deps/npm/doc/cli/changelog.md
vendored
Normal file
80
deps/npm/doc/cli/changelog.md
vendored
Normal file
@@ -0,0 +1,80 @@
|
||||
npm-changelog(1) -- Changes
|
||||
===========================
|
||||
|
||||
## HISTORY
|
||||
|
||||
### 1.1.3, 1.1.4
|
||||
|
||||
* Update request to support HTTPS-over-HTTP proxy tunneling
|
||||
* Throw on undefined envs in config settings
|
||||
* Update which to 1.0.5
|
||||
* Fix windows UNC busyloop in findPrefix
|
||||
* Bundle nested bundleDependencies properly
|
||||
* Alias adduser to add-user
|
||||
* Doc updates (Christian Howe, Henrik Hodne, Andrew Lunny)
|
||||
* ignore logfd/outfd streams in makeEnv() (Rod Vagg)
|
||||
* shrinkwrap: Behave properly with url-installed deps
|
||||
* install: Support --save with url install targets
|
||||
* Support installing naked tars or single-file modules from urls etc.
|
||||
* init: Don't add engines section
|
||||
* Don't run make clean on rebuild
|
||||
* Added missing unicode replacement (atomizer)
|
||||
|
||||
### 1.1.2
|
||||
|
||||
Dave Pacheco (2):
|
||||
add "npm shrinkwrap"
|
||||
|
||||
Martin Cooper (1):
|
||||
Fix #1753 Make a copy of the cached objects we'll modify.
|
||||
|
||||
Tim Oxley (1):
|
||||
correctly remove readme from default npm view command.
|
||||
|
||||
Tyler Green (1):
|
||||
fix #2187 set terminal columns to Infinity if 0
|
||||
|
||||
isaacs (19):
|
||||
update minimatch
|
||||
update request
|
||||
Experimental: single-file modules
|
||||
Fix #2172 Don't remove global mans uninstalling local pkgs
|
||||
Add --versions flag to show the version of node as well
|
||||
Support --json flag for ls output
|
||||
update request to 2.9.151
|
||||
|
||||
### 1.1
|
||||
* Replace system tar dependency with a JS tar
|
||||
* Continue to refine
|
||||
|
||||
### 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)
|
||||
778
deps/npm/doc/cli/config.md
vendored
Normal file
778
deps/npm/doc/cli/config.md
vendored
Normal file
@@ -0,0 +1,778 @@
|
||||
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`
|
||||
* `-q`, `--quiet`: `--loglevel warn`
|
||||
* `-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`
|
||||
* `-D`: `--save-dev`
|
||||
* `-O`: `--save-optional`
|
||||
* `-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: `%APPDATA%\npm-cache`, Posix: `~/.npm`
|
||||
* Type: path
|
||||
|
||||
The location of npm's cache directory. See `npm-cache(1)`
|
||||
|
||||
### cache-max
|
||||
|
||||
* Default: Infinity
|
||||
* Type: Number
|
||||
|
||||
The maximum time (in seconds) to keep items in the registry cache before
|
||||
re-checking against the registry.
|
||||
|
||||
Note that no purging is done unless the `npm cache clean` command is
|
||||
explicitly used, and that only GET requests use the cache.
|
||||
|
||||
### cache-min
|
||||
|
||||
* Default: 0
|
||||
* Type: Number
|
||||
|
||||
The minimum time (in seconds) to keep items in the registry cache before
|
||||
re-checking against the registry.
|
||||
|
||||
Note that no purging is done unless the `npm cache clean` command is
|
||||
explicitly used, and that only GET requests use the cache.
|
||||
|
||||
### 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.
|
||||
|
||||
### coverage
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
A flag to tell test-harness to run with their coverage options enabled,
|
||||
if they respond to the `npm_config_coverage` environment variable.
|
||||
|
||||
### 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.
|
||||
|
||||
### git
|
||||
|
||||
* Default: `"git"`
|
||||
* Type: String
|
||||
|
||||
The command to use for git commands. If git is installed on the
|
||||
computer, but is not in the `PATH`, then set this to the full path to
|
||||
the git binary.
|
||||
|
||||
### 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.
|
||||
|
||||
### user-agent
|
||||
|
||||
* Default: npm/{npm.version} node/{process.version}
|
||||
* Type: String
|
||||
|
||||
Sets a User-Agent to the request header
|
||||
|
||||
### 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: ""
|
||||
* 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.
|
||||
|
||||
### json
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
Whether or not to output JSON data, rather than the normal output.
|
||||
|
||||
This feature is currently experimental, and the output data structures
|
||||
for many commands is either not implemented in JSON yet, or subject to
|
||||
change. Only the output from `npm ls --json` is currently valid.
|
||||
|
||||
### 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: "http"
|
||||
* Type: String
|
||||
* Values: "silent", "win", "error", "warn", "http", "info", "verbose", "silly"
|
||||
|
||||
What level of logs to report. On failure, *all* logs are written to
|
||||
`npm-debug.log` in the current working directory.
|
||||
|
||||
Any logs of a higher level than the setting are shown.
|
||||
The default is "http", which shows http, warn, and error output.
|
||||
|
||||
### 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.
|
||||
|
||||
### proprietary-attribs
|
||||
|
||||
* Default: true
|
||||
* Type: Boolean
|
||||
|
||||
Whether or not to include proprietary extended attributes in the
|
||||
tarballs created by npm.
|
||||
|
||||
Unless you are expecting to unpack package tarballs with something other
|
||||
than npm -- particularly a very outdated tar implementation -- leave
|
||||
this as true.
|
||||
|
||||
### 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.
|
||||
|
||||
### save-dev
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
Save installed packages to a package.json file as devDependencies.
|
||||
|
||||
Only works if there is already a package.json file present.
|
||||
|
||||
### save-optional
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
Save installed packages to a package.json file as optionalDependencies.
|
||||
|
||||
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.
|
||||
|
||||
### searchsort
|
||||
|
||||
* Default: "name"
|
||||
* Type: String
|
||||
* Values: "name", "-name", "date", "-date", "description",
|
||||
"-description", "keywords", "-keywords"
|
||||
|
||||
Indication of which field to sort search results by. Prefix with a `-`
|
||||
character to indicate reverse sort.
|
||||
|
||||
### 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.
|
||||
|
||||
### versions
|
||||
|
||||
* Default: false
|
||||
* Type: boolean
|
||||
|
||||
If true, output the npm version as well as node's `process.versions`
|
||||
hash, 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)
|
||||
183
deps/npm/doc/cli/developers.md
vendored
Normal file
183
deps/npm/doc/cli/developers.md
vendored
Normal file
@@ -0,0 +1,183 @@
|
||||
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)
|
||||
* 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`.
|
||||
|
||||
## 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
|
||||
`.npmignore` file to list out the globs to 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)
|
||||
84
deps/npm/doc/cli/disputes.md
vendored
Normal file
84
deps/npm/doc/cli/disputes.md
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
npm-disputes(1) -- Handling Module Name Disputes
|
||||
================================================
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
1. Get the author email with `npm owner ls <pkgname>`
|
||||
1. Email the author, CC <i@izs.me>.
|
||||
2. After a few weeks, if there's no resolution, we'll sort it out.
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
There sometimes arise cases where a user publishes a module, and then
|
||||
later, some other user wants to use that name. Here are some common
|
||||
ways that happens (each of these is based on actual events.)
|
||||
|
||||
1. Bob writes a JavaScript module `foo`, which is not node-specific.
|
||||
Bob doesn't use node at all. Joe wants to use `foo` in node, so he
|
||||
wraps it in an npm module. Some time later, Bob starts using node,
|
||||
and wants to take over management of his program.
|
||||
2. Bob writes an npm module `foo`, and publishes it. Perhaps much
|
||||
later, Joe finds a bug in `foo`, and fixes it. He sends a pull
|
||||
request to Bob, but Bob doesn't have the time to deal with it,
|
||||
because he has a new job and a new baby and is focused on his new
|
||||
erlang project, and kind of not involved with node any more. Joe
|
||||
would like to publish a new `foo`, but can't, because the name is
|
||||
taken.
|
||||
3. Bob writes a 10-line flow-control library, and calls it `foo`, and
|
||||
publishes it to the npm registry. Being a simple little thing, it
|
||||
never really has to be updated. Joe works for Foo Inc, the makers
|
||||
of the critically acclaimed and widely-marketed `foo` JavaScript
|
||||
toolkit framework. They publish it to npm as `foojs`, but people are
|
||||
routinely confused when `npm install foo` is some different thing.
|
||||
4. Bob writes a parser for the widely-known `foo` file format, because
|
||||
he needs it for work. Then, he gets a new job, and never updates the
|
||||
prototype. Later on, Joe writes a much more complete `foo` parser,
|
||||
but can't publish, because Bob's `foo` is in the way.
|
||||
|
||||
The validity of Joe's claim in each situation can be debated. However,
|
||||
Joe's appropriate course of action in each case is the same.
|
||||
|
||||
1. `npm owner ls foo`. This will tell Joe the email address of the
|
||||
owner (Bob).
|
||||
2. Joe emails Bob, explaining the situation **as respecfully as possible**,
|
||||
and what he would like to do with the module name. He adds
|
||||
isaacs <i@izs.me> to the CC list of the email. Mention in the email
|
||||
that Bob can run `npm owner add joe foo` to add Joe as an owner of
|
||||
the `foo` package.
|
||||
3. After a reasonable amount of time, if Bob has not responded, or if
|
||||
Bob and Joe can't come to any sort of resolution, email isaacs
|
||||
<i@izs.me> and we'll sort it out.
|
||||
|
||||
## REASONING
|
||||
|
||||
In almost every case so far, the parties involved have been able to reach
|
||||
an amicable resolution without any major intervention. Most people
|
||||
really do want to be reasonable, and are probably not even aware that
|
||||
they're in your way.
|
||||
|
||||
Module ecosystems are most vibrant and powerful when they are as
|
||||
self-directed as possible. If an admin one day deletes something you
|
||||
had worked on, then that is going to make most people quite upset,
|
||||
regardless of the justification. When humans solve their problems by
|
||||
talking to other humans with respect, everyone has the chance to end up
|
||||
feeling good about the interaction.
|
||||
|
||||
## EXCEPTIONS
|
||||
|
||||
Some things are not allowed, and will be removed without discussion if
|
||||
they are brought to the attention of the npm registry admins, including
|
||||
but not limited to:
|
||||
|
||||
1. Malware (that is, a module designed to exploit or harm the machine on
|
||||
which it is installed)
|
||||
2. Violations of copyright or licenses (for example, cloning an
|
||||
MIT-licensed program, and then removing or changing the copyright and
|
||||
license statement)
|
||||
3. Illegal content.
|
||||
|
||||
If you see bad behavior like this, please report it right away.
|
||||
|
||||
## SEE ALSO
|
||||
|
||||
* npm-registry(1)
|
||||
* npm-owner(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)
|
||||
251
deps/npm/doc/cli/faq.md
vendored
Normal file
251
deps/npm/doc/cli/faq.md
vendored
Normal file
@@ -0,0 +1,251 @@
|
||||
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 on my computer in a central location?
|
||||
|
||||
Install it globally by tacking `-g` or `--global` to the command. (This
|
||||
is especially important for command line utilities that need to add
|
||||
their bins to the global system `PATH`.)
|
||||
|
||||
## I installed something globally, but I can't `require()` it
|
||||
|
||||
Install it locally.
|
||||
|
||||
The global install location is a place for command-line utilities
|
||||
to put their bins in the system `PATH`. It's not for use with `require()`.
|
||||
|
||||
If you `require()` a module in your code, then that means it's a
|
||||
dependency, and a part of your program. You need to install it locally
|
||||
in your program.
|
||||
|
||||
## Why can't npm just put everything in one place, like other package managers?
|
||||
|
||||
Not every change is an improvement, but every improvement is a change.
|
||||
This would be like asking git to do network IO for every commit. It's
|
||||
not going to happen, because it's a terrible idea that causes more
|
||||
problems than it solves.
|
||||
|
||||
It is much harder to avoid dependency conflicts without nesting
|
||||
dependencies. This is fundamental to the way that npm works, and has
|
||||
proven to be an extremely successful approach. See `npm-folders(1)` for
|
||||
more details.
|
||||
|
||||
If you want a package to be installed in one place, and have all your
|
||||
programs reference the same copy of it, then use the `npm link` command.
|
||||
That's what it's for. Install it globally, then link it into each
|
||||
program that uses it.
|
||||
|
||||
## Whatever, I really want the old style 'everything global' style.
|
||||
|
||||
Write your own package manager, then. It's not that hard.
|
||||
|
||||
npm will not help you do something that is known to be a bad idea.
|
||||
|
||||
## Should I check my `node_modules` folder into git?
|
||||
|
||||
Mikeal Rogers answered this question very well:
|
||||
|
||||
<http://www.mikealrogers.com/posts/nodemodules-in-git.html>
|
||||
|
||||
tl;dr
|
||||
|
||||
* Check `node_modules` into git for things you **deploy**, such as
|
||||
websites and apps.
|
||||
* Do not check `node_modules` into git for libraries and modules
|
||||
intended to be reused.
|
||||
* Use npm to manage dependencies in your dev environment, but not in
|
||||
your deployment scripts.
|
||||
|
||||
## Is it 'npm' or 'NPM' or 'Npm'?
|
||||
|
||||
npm should never be capitalized unless it is being displayed in a
|
||||
location that is customarily all-caps (such as the title of man pages.)
|
||||
|
||||
## If 'npm' is an acronym, why is it never capitalized?
|
||||
|
||||
Contrary to the belief of many, "npm" is not in fact an abbreviation for
|
||||
"Node Package Manager". It is a recursive bacronymic abbreviation for
|
||||
"npm is not an acronym". (If it was "ninaa", then it would be an
|
||||
acronym, and thus incorrectly named.)
|
||||
|
||||
"NPM", however, *is* an acronym (more precisely, a capitonym) for the
|
||||
National Association of Pastoral Musicians. You can learn more
|
||||
about them at <http://npm.org/>.
|
||||
|
||||
In software, "NPM" is a Non-Parametric Mapping utility written by
|
||||
Chris Rorden. You can analyze pictures of brains with it. Learn more
|
||||
about the (capitalized) NPM program at <http://www.cabiatl.com/mricro/npm/>.
|
||||
|
||||
The first seed that eventually grew into this flower was a bash utility
|
||||
named "pm", which was a shortened descendent of "pkgmakeinst", a
|
||||
bash function that was used to install various different things on different
|
||||
platforms, most often using Yahoo's `yinst`. If `npm` was ever an
|
||||
acronym for anything, it was `node pm` or maybe `new pm`.
|
||||
|
||||
So, in all seriousness, the "npm" project is named after its command-line
|
||||
utility, which was organically selected to be easily typed by a right-handed
|
||||
programmer using a US QWERTY keyboard layout, ending with the
|
||||
right-ring-finger in a postition to type the `-` key for flags and
|
||||
other command-line arguments. That command-line utility is always
|
||||
lower-case, though it starts most sentences it is a part of.
|
||||
|
||||
## How do I list installed packages?
|
||||
|
||||
`npm ls`
|
||||
|
||||
## How do I search for packages?
|
||||
|
||||
`npm search`
|
||||
|
||||
Arguments are greps. `npm search jsdom` shows jsdom packages.
|
||||
|
||||
## How do I update npm?
|
||||
|
||||
npm 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.
|
||||
|
||||
To check if the registry is down, open up
|
||||
<http://registry.npmjs.org/>
|
||||
in a web browser. This will also tell you if you are just unable to
|
||||
access the internet for some reason.
|
||||
|
||||
If the registry IS down, let 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)
|
||||
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)
|
||||
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)
|
||||
377
deps/npm/doc/cli/index.md
vendored
Normal file
377
deps/npm/doc/cli/index.md
vendored
Normal file
@@ -0,0 +1,377 @@
|
||||
npm-index(1) -- Index of all npm documentation
|
||||
==============================================
|
||||
|
||||
## npm-README(1)
|
||||
|
||||
node package manager
|
||||
|
||||
# Command Line Documentation
|
||||
## npm-adduser(1)
|
||||
|
||||
Add a registry user account
|
||||
|
||||
## npm-bin(1)
|
||||
|
||||
Display npm bin folder
|
||||
|
||||
## npm-bugs(1)
|
||||
|
||||
Bugs for a package in a web browser maybe
|
||||
|
||||
## npm-build(1)
|
||||
|
||||
Build a package
|
||||
|
||||
## npm-bundle(1)
|
||||
|
||||
REMOVED
|
||||
|
||||
## npm-cache(1)
|
||||
|
||||
Manipulates packages cache
|
||||
|
||||
## npm-changelog(1)
|
||||
|
||||
Changes
|
||||
|
||||
## npm-coding-style(1)
|
||||
|
||||
npm's "funny" coding style
|
||||
|
||||
## npm-completion(1)
|
||||
|
||||
Tab Completion for npm
|
||||
|
||||
## npm-config(1)
|
||||
|
||||
Manage the npm configuration file
|
||||
|
||||
## npm-deprecate(1)
|
||||
|
||||
Deprecate a version of a package
|
||||
|
||||
## npm-developers(1)
|
||||
|
||||
Developer Guide
|
||||
|
||||
## npm-disputes(1)
|
||||
|
||||
Handling Module Name Disputes
|
||||
|
||||
## npm-docs(1)
|
||||
|
||||
Docs for a package in a web browser maybe
|
||||
|
||||
## npm-edit(1)
|
||||
|
||||
Edit an installed package
|
||||
|
||||
## npm-explore(1)
|
||||
|
||||
Browse an installed package
|
||||
|
||||
## npm-faq(1)
|
||||
|
||||
Frequently Asked Questions
|
||||
|
||||
## npm-folders(1)
|
||||
|
||||
Folder Structures Used by npm
|
||||
|
||||
## npm-help-search(1)
|
||||
|
||||
Search npm help documentation
|
||||
|
||||
## npm-help(1)
|
||||
|
||||
Get help on npm
|
||||
|
||||
## npm-init(1)
|
||||
|
||||
Interactively create a package.json file
|
||||
|
||||
## npm-install(1)
|
||||
|
||||
Install a package
|
||||
|
||||
## npm-json(1)
|
||||
|
||||
Specifics of npm's package.json handling
|
||||
|
||||
## npm-link(1)
|
||||
|
||||
Symlink a package folder
|
||||
|
||||
## npm-list(1)
|
||||
|
||||
List installed packages
|
||||
|
||||
## npm-npm(1)
|
||||
|
||||
node package manager
|
||||
|
||||
## npm-outdated(1)
|
||||
|
||||
Check for outdated packages
|
||||
|
||||
## npm-owner(1)
|
||||
|
||||
Manage package owners
|
||||
|
||||
## npm-pack(1)
|
||||
|
||||
Create a tarball from a package
|
||||
|
||||
## npm-prefix(1)
|
||||
|
||||
Display prefix
|
||||
|
||||
## npm-prune(1)
|
||||
|
||||
Remove extraneous packages
|
||||
|
||||
## npm-publish(1)
|
||||
|
||||
Publish a package
|
||||
|
||||
## npm-rebuild(1)
|
||||
|
||||
Rebuild a package
|
||||
|
||||
## npm-registry(1)
|
||||
|
||||
The JavaScript Package Registry
|
||||
|
||||
## npm-removing-npm(1)
|
||||
|
||||
Cleaning the Slate
|
||||
|
||||
## npm-restart(1)
|
||||
|
||||
Start a package
|
||||
|
||||
## npm-root(1)
|
||||
|
||||
Display npm root
|
||||
|
||||
## npm-run-script(1)
|
||||
|
||||
Run arbitrary package scripts
|
||||
|
||||
## npm-scripts(1)
|
||||
|
||||
How npm handles the "scripts" field
|
||||
|
||||
## npm-search(1)
|
||||
|
||||
Search for packages
|
||||
|
||||
## npm-semver(1)
|
||||
|
||||
The semantic versioner for npm
|
||||
|
||||
## npm-shrinkwrap(1)
|
||||
|
||||
Lock down dependency versions
|
||||
|
||||
## npm-star(1)
|
||||
|
||||
Mark your favorite packages
|
||||
|
||||
## npm-start(1)
|
||||
|
||||
Start a package
|
||||
|
||||
## npm-stop(1)
|
||||
|
||||
Stop a package
|
||||
|
||||
## npm-submodule(1)
|
||||
|
||||
Add a package as a git submodule
|
||||
|
||||
## npm-tag(1)
|
||||
|
||||
Tag a published version
|
||||
|
||||
## npm-test(1)
|
||||
|
||||
Test a package
|
||||
|
||||
## npm-uninstall(1)
|
||||
|
||||
Remove a package
|
||||
|
||||
## npm-unpublish(1)
|
||||
|
||||
Remove a package from the registry
|
||||
|
||||
## npm-update(1)
|
||||
|
||||
Update a package
|
||||
|
||||
## npm-version(1)
|
||||
|
||||
Bump a package version
|
||||
|
||||
## npm-view(1)
|
||||
|
||||
View registry info
|
||||
|
||||
## npm-whoami(1)
|
||||
|
||||
Display npm username
|
||||
|
||||
# API Documentation
|
||||
## npm-bin(3)
|
||||
|
||||
Display npm bin folder
|
||||
|
||||
## npm-bugs(3)
|
||||
|
||||
Bugs for a package in a web browser maybe
|
||||
|
||||
## npm-commands(3)
|
||||
|
||||
npm commands
|
||||
|
||||
## npm-config(3)
|
||||
|
||||
Manage the npm configuration files
|
||||
|
||||
## npm-deprecate(3)
|
||||
|
||||
Deprecate a version of a package
|
||||
|
||||
## npm-docs(3)
|
||||
|
||||
Docs for a package in a web browser maybe
|
||||
|
||||
## npm-edit(3)
|
||||
|
||||
Edit an installed package
|
||||
|
||||
## npm-explore(3)
|
||||
|
||||
Browse an installed package
|
||||
|
||||
## npm-help-search(3)
|
||||
|
||||
Search the help pages
|
||||
|
||||
## npm-init(3)
|
||||
|
||||
Interactively create a package.json file
|
||||
|
||||
## npm-install(3)
|
||||
|
||||
install a package programmatically
|
||||
|
||||
## npm-link(3)
|
||||
|
||||
Symlink a package folder
|
||||
|
||||
## npm-load(3)
|
||||
|
||||
Load config settings
|
||||
|
||||
## npm-ls(3)
|
||||
|
||||
List installed packages
|
||||
|
||||
## npm-npm(3)
|
||||
|
||||
node package manager
|
||||
|
||||
## npm-outdated(3)
|
||||
|
||||
Check for outdated packages
|
||||
|
||||
## npm-owner(3)
|
||||
|
||||
Manage package owners
|
||||
|
||||
## npm-pack(3)
|
||||
|
||||
Create a tarball from a package
|
||||
|
||||
## npm-prefix(3)
|
||||
|
||||
Display prefix
|
||||
|
||||
## npm-prune(3)
|
||||
|
||||
Remove extraneous packages
|
||||
|
||||
## npm-publish(3)
|
||||
|
||||
Publish a package
|
||||
|
||||
## npm-rebuild(3)
|
||||
|
||||
Rebuild a package
|
||||
|
||||
## npm-restart(3)
|
||||
|
||||
Start a package
|
||||
|
||||
## npm-root(3)
|
||||
|
||||
Display npm root
|
||||
|
||||
## npm-run-script(3)
|
||||
|
||||
Run arbitrary package scripts
|
||||
|
||||
## npm-search(3)
|
||||
|
||||
Search for packages
|
||||
|
||||
## npm-shrinkwrap(3)
|
||||
|
||||
programmatically generate package shrinkwrap file
|
||||
|
||||
## npm-start(3)
|
||||
|
||||
Start a package
|
||||
|
||||
## npm-stop(3)
|
||||
|
||||
Stop a package
|
||||
|
||||
## npm-submodule(3)
|
||||
|
||||
Add a package as a git submodule
|
||||
|
||||
## npm-tag(3)
|
||||
|
||||
Tag a published version
|
||||
|
||||
## npm-test(3)
|
||||
|
||||
Test a package
|
||||
|
||||
## npm-uninstall(3)
|
||||
|
||||
uninstall a package programmatically
|
||||
|
||||
## npm-unpublish(3)
|
||||
|
||||
Remove a package from the registry
|
||||
|
||||
## npm-update(3)
|
||||
|
||||
Update a package
|
||||
|
||||
## npm-version(3)
|
||||
|
||||
Bump a package version
|
||||
|
||||
## npm-view(3)
|
||||
|
||||
View registry info
|
||||
|
||||
## npm-whoami(3)
|
||||
|
||||
Display npm username
|
||||
|
||||
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)
|
||||
233
deps/npm/doc/cli/install.md
vendored
Normal file
233
deps/npm/doc/cli/install.md
vendored
Normal file
@@ -0,0 +1,233 @@
|
||||
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> [--save|--save-dev|--save-optional]
|
||||
npm install <name>@<tag>
|
||||
npm install <name>@<version>
|
||||
npm install <name>@<version range>
|
||||
npm install <name>@<version range>
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
This command installs a package, and any packages that it depends on. If the
|
||||
package has a shrinkwrap file, the installation of dependencies will be driven
|
||||
by that. See npm-shrinkwrap(1).
|
||||
|
||||
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> [--save|--save-dev|--save-optional]`:
|
||||
|
||||
Do a `<name>@<tag>` install, where `<tag>` is the "tag" config. (See
|
||||
`npm-config(1)`.)
|
||||
|
||||
In most cases, this will install the latest version
|
||||
of the module published on npm.
|
||||
|
||||
Example:
|
||||
|
||||
npm install sax
|
||||
|
||||
`npm install` takes 3 exclusive, optional flags which save or update
|
||||
the package version in your main package.json:
|
||||
|
||||
* `--save`: Package will appear in your `dependencies`.
|
||||
|
||||
* `--save-dev`: Package will appear in your `devDependencies`.
|
||||
|
||||
* `--save-optional`: Package will appear in your `optionalDependencies`.
|
||||
|
||||
Examples:
|
||||
|
||||
npm install sax --save
|
||||
npm install node-tap --save-dev
|
||||
npm install dtrace-provider --save-optional
|
||||
|
||||
|
||||
**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)
|
||||
* npm-shrinkwrap(1)
|
||||
546
deps/npm/doc/cli/json.md
vendored
Normal file
546
deps/npm/doc/cli/json.md
vendored
Normal file
@@ -0,0 +1,546 @@
|
||||
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.
|
||||
* `git...` See 'Git URLs as Dependencies' below
|
||||
|
||||
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.
|
||||
|
||||
### Git URLs as Dependencies
|
||||
|
||||
Git urls can be of the form:
|
||||
|
||||
git://github.com/user/project.git#commit-ish
|
||||
git+ssh://user@hostname: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`.
|
||||
|
||||
## 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.
|
||||
|
||||
## optionalDependencies
|
||||
|
||||
If a dependency can be used, but you would like npm to proceed if it
|
||||
cannot be found or fails to install, then you may put it in the
|
||||
`optionalDependencies` hash. This is a map of package name to version
|
||||
or url, just like the `dependencies` hash. The difference is that
|
||||
failure is tolerated.
|
||||
|
||||
It is still your program's responsibility to handle the lack of the
|
||||
dependency. For example, something like this:
|
||||
|
||||
try {
|
||||
var foo = require('foo')
|
||||
var fooVersion = require('foo/package.json').version
|
||||
} catch (er) {
|
||||
foo = null
|
||||
}
|
||||
if ( notGoodFooVersion(fooVersion) ) {
|
||||
foo = null
|
||||
}
|
||||
|
||||
// .. then later in your program ..
|
||||
|
||||
if (foo) {
|
||||
foo.doFooThings()
|
||||
}
|
||||
|
||||
Entries in `optionalDependencies` will override entries of the same name in
|
||||
`dependencies`, so it's usually best to only put in one place.
|
||||
|
||||
## 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" } }
|
||||
|
||||
## os
|
||||
|
||||
You can specify which operating systems your
|
||||
module will run on:
|
||||
|
||||
"os" : [ "darwin", "linux" ]
|
||||
|
||||
You can also blacklist instead of whitelist operating systems,
|
||||
just prepend the blacklisted os with a '!':
|
||||
|
||||
"os" : [ "!win32" ]
|
||||
|
||||
The host operating system is determined by `process.platform`
|
||||
|
||||
It is allowed to both blacklist, and whitelist, although there isn't any
|
||||
good reason to do this.
|
||||
|
||||
## cpu
|
||||
|
||||
If your code only runs on certain cpu architectures,
|
||||
you can specify which ones.
|
||||
|
||||
"cpu" : [ "x64", "ia32" ]
|
||||
|
||||
Like the `os` option, you can also blacklist architectures:
|
||||
|
||||
"cpu" : [ "!arm", "!mips" ]
|
||||
|
||||
The host architecture is determined by `process.arch`
|
||||
|
||||
## 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 specific 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)
|
||||
62
deps/npm/doc/cli/list.md
vendored
Normal file
62
deps/npm/doc/cli/list.md
vendored
Normal file
@@ -0,0 +1,62 @@
|
||||
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
|
||||
|
||||
### json
|
||||
|
||||
* Default: false
|
||||
* Type: Boolean
|
||||
|
||||
Show information in JSON format.
|
||||
|
||||
### 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)
|
||||
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)
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user