summaryrefslogtreecommitdiff
path: root/deps/npm/html/partial/doc/files/npmrc.html
blob: ed1eb0295fa5e3fb99a86832bd86d1c6cb8b3767 (plain)
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
<h1><a href="../files/npmrc.html">npmrc</a></h1> <p>The npm config files</p>
<h2 id="description">DESCRIPTION</h2>
<p>npm gets its config settings from the command line, environment
variables, and <code>npmrc</code> files.</p>
<p>The <code>npm config</code> command can be used to update and edit the contents
of the user and global npmrc files.</p>
<p>For a list of available configuration options, see <a href="../misc/npm-config.html">npm-config(7)</a>.</p>
<h2 id="files">FILES</h2>
<p>The four relevant files are:</p>
<ul>
<li>per-project config file (/path/to/my/project/.npmrc)</li>
<li>per-user config file (~/.npmrc)</li>
<li>global config file ($PREFIX/etc/npmrc)</li>
<li>npm builtin config file (/path/to/npm/npmrc)</li>
</ul>
<p>All npm config files are an ini-formatted list of <code>key = value</code>
parameters.  Environment variables can be replaced using
<code>${VARIABLE_NAME}</code>. For example:</p>
<pre><code>prefix = ${HOME}/.npm-packages
</code></pre><p>Each of these files is loaded, and config options are resolved in
priority order.  For example, a setting in the userconfig file would
override the setting in the globalconfig file.</p>
<p>Array values are specified by adding &quot;[]&quot; after the key name. For
example:</p>
<pre><code>key[] = &quot;first value&quot;
key[] = &quot;second value&quot;
</code></pre><p><strong>NOTE:</strong> Because local (per-project or per-user) <code>.npmrc</code> files can contain
sensitive credentials, they must be readable and writable <em>only</em> by your user
account (i.e. must have a mode of <code>0600</code>), otherwise they <em>will be ignored by
npm!</em></p>
<h3 id="per-project-config-file">Per-project config file</h3>
<p>When working locally in a project, a <code>.npmrc</code> file in the root of the
project (ie, a sibling of <code>node_modules</code> and <code>package.json</code>) will set
config values specific to this project.</p>
<p>Note that this only applies to the root of the project that you&#39;re
running npm in.  It has no effect when your module is published.  For
example, you can&#39;t publish a module that forces itself to install
globally, or in a different location.</p>
<p>Additionally, this file is not read in global mode, such as when running
<code>npm install -g</code>.</p>
<h3 id="per-user-config-file">Per-user config file</h3>
<p><code>$HOME/.npmrc</code> (or the <code>userconfig</code> param, if set in the environment
or on the command line)</p>
<h3 id="global-config-file">Global config file</h3>
<p><code>$PREFIX/etc/npmrc</code> (or the <code>globalconfig</code> param, if set above):
This file is an ini-file formatted list of <code>key = value</code> parameters.
Environment variables can be replaced as above.</p>
<h3 id="built-in-config-file">Built-in config file</h3>
<p><code>path/to/npm/itself/npmrc</code></p>
<p>This is an unchangeable &quot;builtin&quot; configuration file that npm keeps
consistent across updates.  Set fields in here using the <code>./configure</code>
script that comes with npm.  This is primarily for distribution
maintainers to override default configs in a standard and consistent
manner.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../files/npm-folders.html">npm-folders(5)</a></li>
<li><a href="../cli/npm-config.html">npm-config(1)</a></li>
<li><a href="../misc/npm-config.html">npm-config(7)</a></li>
<li><a href="../files/package.json.html">package.json(5)</a></li>
<li><a href="../cli/npm.html">npm(1)</a></li>
</ul>