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
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
|
.\" Generated with Ronnjs/v0.1
.\" http://github.com/kapouer/ronnjs/
.
.TH "NPM\-CONFIG" "1" "February 2011" "" ""
.
.SH "NAME"
\fBnpm-config\fR \-\- Manage the npm configuration file
.
.SH "SYNOPSIS"
.
.nf
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]
.
.fi
.
.SH "DESCRIPTION"
npm gets its configuration values from 5 sources, in this priority:
.
.IP "\(bu" 4
cli:
The command line flags\. Putting \fB\-\-foo bar\fR on the command line sets the \fBfoo\fR configuration parameter to \fB"bar"\fR\|\. A \fB\-\-\fR argument tells the cli
parser to stop reading flags\. A \fB\-\-flag\fR parameter that is at the \fIend\fR of
the command will be given the value of \fBtrue\fR\|\.
.
.IP "\(bu" 4
env:
Any environment variables that start with \fBnpm_config_\fR will be interpreted
as a configuration parameter\. For example, putting \fBnpm_config_foo=bar\fR in
your environment will set the \fBfoo\fR configuration parameter to \fBbar\fR\|\. Any
environment configurations that are not given a value will be given the value
of \fBtrue\fR\|\. Config values are case\-insensitive, so \fBNPM_CONFIG_FOO=bar\fR will
work the same\.
.
.IP "\(bu" 4
$HOME/\.npmrc (or the \fBuserconfig\fR param, if set above):
This file is an ini\-file formatted list of \fBkey = value\fR parameters\.
.
.IP "\(bu" 4
$PREFIX/etc/npmrc (or the \fBglobalconfig\fR param, if set above):
This file is an ini\-file formatted list of \fBkey = value\fR parameters
.
.IP "\(bu" 4
default configs:
This is a set of configuration parameters that are internal to npm, and are
defaults if nothing else is specified\.
.
.IP "" 0
.
.SH "Sub\-commands"
Config supports the following sub\-commands:
.
.SS "set"
.
.nf
npm config set key value
.
.fi
.
.P
Sets the config key to the value\.
.
.SS "get"
.
.nf
npm config get key
.
.fi
.
.P
Echo the config value to stdout\. (NOTE: All the other npm logging is done to
stderr, so pipes should work properly, and you can do \fBnpm get key 2>/dev/null\fR
to print out JUST the config value\.)
.
.SS "list"
.
.nf
npm config list
.
.fi
.
.P
Show all the config settings\.
.
.SS "delete"
.
.nf
npm config delete key
.
.fi
.
.P
Deletes the key from all configuration files\.
.
.SS "edit"
.
.nf
npm config edit
.
.fi
.
.P
Opens the config file in an editor\. Use the \fB\-\-global\fR flag to edit the global config\.
.
.SH "Per\-Package Config Settings"
When running scripts (see \fBnpm help scripts\fR)
the package\.json "config" keys are overwritten in the environment if
there is a config param of \fB<name>[@<version>]:<key>\fR\|\. For example, if
the package\.json has this:
.
.IP "" 4
.
.nf
{ "name" : "foo"
, "config" : { "port" : "8080" }
, "scripts" : { "start" : "node server\.js" } }
.
.fi
.
.IP "" 0
.
.P
and the server\.js is this:
.
.IP "" 4
.
.nf
http\.createServer(\.\.\.)\.listen(process\.env\.npm_package_config_port)
.
.fi
.
.IP "" 0
.
.P
then the user could change the behavior by doing:
.
.IP "" 4
.
.nf
npm config set foo:port 80
.
.fi
.
.IP "" 0
.
.SH "Config Settings"
.
.SS "auto\-activate"
Default: true
.
.P
Automatically activate a package after installation, if there is not an active
version already\. Set to "always" to always activate when installing\.
.
.SS "rebuild\-bundle"
Default: true
.
.P
Set to some truish value to rebuild bundled dependencies after
installation\.
.
.SS "recursive"
Default: false
.
.P
Set to some truish value to recursively remove dependent packages\. For
example if foo depends on bar, and bar depends on baz, then:
.
.IP "" 4
.
.nf
npm uninstall baz \-\-recursive
.
.fi
.
.IP "" 0
.
.P
will remove baz, bar, and foo\.
.
.SS "loglevel"
Default: "info"
.
.P
The log level to show\.
.
.P
Each level maps to a numeric value, above which all logs must pass to be
seen\. So, setting it to "warn" shows "win", "error" and "warn" messages\.
.
.P
The log levels:
.
.IP "\(bu" 4
silent: Show no output\. Nothing\. If there is output on stderr, it\'s
because something is broken\.
.
.IP "\(bu" 4
win: Show the "npm ok" or "npm not ok", but that\'s all\.
.
.IP "\(bu" 4
error: Errors, usually with a stack trace\.
.
.IP "\(bu" 4
warn: Things that you should probably be aware of\.
.
.IP "\(bu" 4
info: Helpful info\.
.
.IP "\(bu" 4
silly: Not\-helpful info\. (Lots of dumping whole objects and such\.)
.
.IP "" 0
.
.P
Note that output to stdout is always printed\. This setting just modifies
what\'s logged to stderr\.
.
.SS "update\-dependents"
Default: true
.
.P
Automatically update a package\'s dependencies after installation, if it is the
newest version installed\. Set to "always" to update dependents when a new
version is installed, even if it\'s not the newest\.
.
.SS "root"
Default: \fB$INSTALL_PREFIX/lib/node\fR
.
.P
The root folder where packages are installed and npm keeps its data\.
.
.SS "binroot"
Default: \fB$INSTALL_PREFIX/bin\fR
.
.P
The folder where executable programs are installed\.
.
.P
Set to "false" to not install executables
.
.SS "manroot"
Default: $INSTALL_PREFIX/share/man
.
.P
The folder where man pages are installed\.
.
.P
Set to "false" to not install man pages\.
.
.SS "registry"
Default: https://registry\.npmjs\.org/
.
.P
The base URL of the npm package registry\.
.
.SS "_auth"
A base\-64 encoded "user:pass" pair\. This is created by npm\-adduser(1)\.
.
.P
If your config file is ever corrupted, you can set this manually by doing:
.
.IP "" 4
.
.nf
npm adduser
.
.fi
.
.IP "" 0
.
.SS "username, _password"
Once the configuration is parsed, the \fB_auth\fR config is split into \fBusername\fR and \fB_password\fR\|\. This is the part before the ":"
.
.SS "proxy"
If proxy is available, then npm will access the registry via
the proxy server\.
.
.P
Example:
.
.IP "" 4
.
.nf
proxy = http://user:password@proxy\-server:8080
.
.fi
.
.IP "" 0
.
.SS "tag"
Default: latest
.
.P
If you ask npm to install a package and don\'t tell it a specific version, then
it will install the specified tag\.
.
.P
Note: this has no effect on the npm\-tag(1) command\.
.
.SS "userconfig"
The default user configuration file is process\.env\.HOME+"/\.npmrc"\.
.
.P
Note that this must be provided either in the cli or env settings\. Once the
userconfig is read, it is irrelevant\.
.
.SS "globalconfig"
The default global configuration file is resolved based on the location of the
node executable\. It is process\.execPath+"/\.\./\.\./etc/npmrc"\. In the canonical
NodeJS installation with \fBmake install\fR, this is \fB/usr/local/etc/npmrc\fR\|\. If you
put the node binary somewhere else (for instance, if you are using nvm or
nave), then it would be resolved relative to that location\.
.
.P
Note that this must be provided in the cli, env, or userconfig settings\. Once
the globalconfig is read, this parameter is irrelevant\.
.
.SS "global"
If set to some truish value (for instance, by being the last cli flag or being
passed a literal \fBtrue\fR or \fB1\fR), and the \fBnpm config set\fR param is being
called, then the new configuration paramater is written global config file\.
Otherwise, they are saved to the user config file\.
.
.SS "dev"
If set to a truish value, then it\'ll install the "devDependencies" as well as
"dependencies" when installing a package\.
.
.P
Note that devDependencies are \fIalways\fR installed when linking a package\.
.
.SS "tar"
Default: env\.TAR or "tar"
.
.P
The name of a GNU\-compatible tar program on your system\.
.
.SS "gzip"
Default: env\.GZIPBIN or "gzip"
.
.P
The name of a GNU\-compatible gzip program on your system\.
.
.SS "usage"
If set to \fBtrue\fR, then this will tell help to print out the short usage statement
instead of the long manpage type thing\.
.
.P
This is set automatically if you invoke help like \fBnpm command \-?\fR\|\.
.
.SS "viewer"
Default: "man"
.
.P
The program to use to view help content\. Set to "woman" to use the emacs troff viewer
by that name\.
.
.SS "_exit"
Default: true
.
.P
Whether or not to exit the process when the command is finished\. When
using npm programmatically, it\'s a good idea to set this to \fBfalse\fR
explicitly\.
.
.SS "logfd"
Default: Standard Error FD (2)
.
.P
The file descriptor (integer) or stream object where npm will write log
messages\.
.
.P
When using npm programmatically, you may want to provide a
FileWriteStream, or some other form of WritableStream\.
.
.SS "outfd"
Default: Standard Output FD (1)
.
.P
The file descriptor (integer) or stream object where npm will write
"normal" output\. For instance, the \fBls\fR and \fBview\fR commands write their
output here\.
.
.P
When using npm programmatically, you may want to provide a
FileWriteStream, or some other form of WritableStream\.
.
.SS "color"
Default: true
.
.P
Set to false to disable colorized output\.
.
.P
In versions of node that expose the \fBisatty\fR function, npm will never
write colorized output to a non\-terminal file descriptor\.
.
.SS "tmproot"
Default: env\.TMPDIR or "/tmp"
.
.P
The folder where temporary files should be placed\.
.
.P
npm creates a subfolder whenever it is run, and attempts to delete it
afterwards\.
.
.SS "force"
Default: false
.
.P
Set to a truish value to force uninstalling packages, even if they have
dependents\.
.
.P
Note that setting \fBrecursive\fR is safer, because forcing uninstall can
create orphan packages that no longer function properly\.
.
.SS "editor"
Default: env\.EDITOR
.
.P
The program to use to edit files\.
.
.SS "listexclude"
Default: null
.
.P
A whitespace separated list of strings which \fIprevent\fR items from being
shown to \fBnpm ls\fR\|\.
.
.P
For example, \fBnpm ls installed \-\-listexclude zombie\fR will show all
installed packages \fIexcept\fR zombie\.
.
.SS "listopts"
Default: ""
.
.P
A whitespace\-separated list of extra args that are always passed to npm ls
.
.P
For example: \fBlistopts = remote\fR
.
.P
\fBnpm ls\fR
.
.P
The output here will always filter by remote
.
.SS "must\-install"
Default: true
.
.P
Set to false to not install over packages that already exist\. By
default, \fBnpm install foo\fR will fetch and install the latest version of \fBfoo\fR, even if it matches a version already installed\.
.
.SH "description"
Default: true
.
.P
Show the package description in npm ls\.
.
.SH "node\-version"
Default: \fBprocess\.version\fR from the node environment
.
.P
An effective version of node to use when checking for "engines"
compliance\.
.
.P
Set to null or false to suppress engine checking altogether\.
.
.SH "onload\-script"
Default: false
.
.P
A script to run when npm loads\. Use this to hook into various events in
the npm flow in a programmatic way, even when using npm from the command
line\.
.
.P
If false, then don\'t do any onload stuff\.
|