1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
|
.\" generated with Ronn/v0.4.1
.\" http://github.com/rtomayko/ronn/
.
.TH "NPM" "1" "June 2010" "" ""
.
.SH "NAME"
\fBnpm\fR \-\- node package manager
.
.SH "SYNOPSIS"
.
.nf
npm <command> [args]
.
.fi
.
.SH "DESCRIPTION"
npm is a little package manager for the Node javascript library.
.
.P
See npm\-help(1) for more details about specific commands.
.
.P
npm supports a very basic argument parser. For any of the settings
in npm\-config(1), you can set them explicitly for a single command by
doing:
.
.IP "" 4
.
.nf
npm \-\-key val <command>
.
.fi
.
.IP "" 0
.
.P
If you are a package maintainer, please investigate the documentation at
npm\-json(1), npm\-publish(1), and npm\-tag(1) sections first. See
npm\-folders(1) section to see how you can leverage npm's functionality
for your own purposes.
.
.SH "STATUS: beta"
The core functionality is there. You can publish, tag, and install. It
handles dependencies relatively smartly.
.
.P
Please use this software. It will cut you occasionally. Let me know when
you find a rough edge, and I'll sand it down for you.
.
.P
I appreciate your sense of adventure.
.
.SH "Principles"
Put the files where they need to be so that node can find them using the
methods it already uses.
.
.P
Be lazy, not clever.
.
.P
The file system is the database.
.
.P
Sync with habits that are already in use.
.
.P
Packages should be maintained by their authors, not by the package manager
author.
.
.P
Run it on node. Cuz a node package manager should be written in evented
javascript.
.
.SH "Contributing"
If you're interested in helping, that's awesome! Please fork this project,
implement some of the things on the todo list, or fix an issue, or even
just write or edit some documentation. You have no idea just how thankful
I'll be.
.
.P
If you don't want to contribute patches, that's also cool. It's very helpful
to have people play with npm and send issues or complaints. It's stable in
what it does, so you may find it useful even if you just link in your stuff
by doing \fBnpm link .\fR to put it in the \fBNODE_PATH\fR so you can pull it in
more easily.
.
.P
If you have strong feelings about package managers, I'd love to hear your
opinions.
.
.P
You can usually find me in #node.js on freenode.net, or you can reach me via
i@izs.me.
.
.SH "Todo"
See \fIhttp://github.com/isaacs/npm/issues\fR for current todo list.
.
.SH "Version History"
.
.TP
0.0.1
Lots of sketches and false starts. Abandoned a few times.
.
.TP
0.0.2
Install worked mostly. Still promise\-based.
.
.TP
0.0.3
Converted to callbacks.
.
.br
Mikeal Rogers wrote a registry for it.
.
.TP
0.0.4
version dependencies
.
.br
link packages
.
.br
activation
.
.br
lifecycle scripts
.
.br
bin linking
.
.br
uninstallation
.
.TP
0.0.5
fix a few bugs in uninstall wrt dependent packages
.
.br
fix relative require()for nodejs modules installed with the "bin" field.
.
.br
(issue #2)
.
.br
update to work with node 0.1.33 (aka net2)
.
.br
added publish and tag commands
.
.TP
0.0.6
set up a public registry
.
.br
send content\-length with registry PUTs
.
.br
adduser command (Mikeal Rogers)
.
.br
ini file stuff (Mikeal Rogers)
.
.br
env\-specific package.json
.
.br
added more info to npm's the package.json (bugs, contributors, etc.)
.
.TP
0.0.7
fixed a few bugs in semver
.
.br
refactor documentation
.
.br
add "help" command
.
.br
add install from registry
.
.br
everything else core
.
.br
push to beta
.
.TP
0.1.0 \- 0.1.2
push to beta, and announce
.
.br
clean up some bugs around lifecycle scripts
.
.br
reduce reliance on makefile
.
.br
documentation updates
.
.br
Fixed DOA bugs
.
.br
Removed dependence on ronn
.
.TP
0.1.3
Changed a few details with configs (fix #5)
.
.br
Update adduser and publish to put author info in the data
.
.br
Use buffer api for file writes, hopefully fix #4
.
.TP
0.1.4 \- 0.1.5
Fixes for a few more bugs and fix some documentation.
.
.TP
0.1.6 \- 0.1.7
Add cache functionality
.
.br
Use couchdb attachments to host tarballs
.
.br
Handle odd require.paths more appropriately
.
.br
Don't break on install if the man path is missing
.
.br
Support publishing or installing a folder or local tarball
.
.TP
0.1.8
Bugfixes
.
.br
Add start, stop, restart, and test commands
.
.TP
0.1.9
npm list enhancements
.
.br
fix the install bug
.
.TP
0.1.10
More errors found by Ryan Dahl and Kris Zyp
.
.br
Better uninstall and list behavior
.
.br
Docs for new developers.
.
.br
Better tracking of ownership on the registry.
.
.TP
0.1.11
Martyn Smith found a whole lot of bugs.
.
.br
Make publish not die when the tarball is big.
.
.br
"make uninstall" support
.
.TP
0.1.12 \- 0.1.13
Fix the downloading bug that was breaking the tarballs
.
.br
Update some docs
.
.TP
0.1.14 \- 0.1.16
Fix to stay in sync with node changes
.
.br
Put a special tag on link installs
.
.br
Modify semver comparison slightly
.
.br
add unpublish command
.
.br
Use the "drain" event properly for uploads
.
.br
Handle thrown errors
.
.br
Handle .npmignore
.
.SH "SEE ALSO"
npm\-help(1)
.
.br
|