mirror of
https://github.com/bunny-lab-io/Borealis.git
synced 2025-07-28 14:18:29 -06:00
Removed the Requirement to Install Python and NodeJS (Now Bundled with Borealis)
This commit is contained in:
330
Dependencies/NodeJS/node_modules/npm/docs/output/configuring-npm/folders.html
generated
vendored
Normal file
330
Dependencies/NodeJS/node_modules/npm/docs/output/configuring-npm/folders.html
generated
vendored
Normal file
@ -0,0 +1,330 @@
|
||||
<!DOCTYPE html><html><head>
|
||||
<meta charset="utf-8">
|
||||
<title>folders</title>
|
||||
<style>
|
||||
body {
|
||||
background-color: #ffffff;
|
||||
color: #24292e;
|
||||
|
||||
margin: 0;
|
||||
|
||||
line-height: 1.5;
|
||||
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
|
||||
}
|
||||
#rainbar {
|
||||
height: 10px;
|
||||
background-image: linear-gradient(139deg, #fb8817, #ff4b01, #c12127, #e02aff);
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #0366d6;
|
||||
}
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
pre {
|
||||
margin: 1em 0px;
|
||||
padding: 1em;
|
||||
border: solid 1px #e1e4e8;
|
||||
border-radius: 6px;
|
||||
|
||||
display: block;
|
||||
overflow: auto;
|
||||
|
||||
white-space: pre;
|
||||
|
||||
background-color: #f6f8fa;
|
||||
color: #393a34;
|
||||
}
|
||||
code {
|
||||
font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace;
|
||||
font-size: 85%;
|
||||
padding: 0.2em 0.4em;
|
||||
background-color: #f6f8fa;
|
||||
color: #393a34;
|
||||
}
|
||||
pre > code {
|
||||
padding: 0;
|
||||
background-color: inherit;
|
||||
color: inherit;
|
||||
}
|
||||
h1, h2, h3 {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
#logobar {
|
||||
background-color: #333333;
|
||||
margin: 0 auto;
|
||||
padding: 1em 4em;
|
||||
}
|
||||
#logobar .logo {
|
||||
float: left;
|
||||
}
|
||||
#logobar .title {
|
||||
font-weight: 600;
|
||||
color: #dddddd;
|
||||
float: left;
|
||||
margin: 5px 0 0 1em;
|
||||
}
|
||||
#logobar:after {
|
||||
content: "";
|
||||
display: block;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
#content {
|
||||
margin: 0 auto;
|
||||
padding: 0 4em;
|
||||
}
|
||||
|
||||
#table_of_contents > h2 {
|
||||
font-size: 1.17em;
|
||||
}
|
||||
#table_of_contents ul:first-child {
|
||||
border: solid 1px #e1e4e8;
|
||||
border-radius: 6px;
|
||||
padding: 1em;
|
||||
background-color: #f6f8fa;
|
||||
color: #393a34;
|
||||
}
|
||||
#table_of_contents ul {
|
||||
list-style-type: none;
|
||||
padding-left: 1.5em;
|
||||
}
|
||||
#table_of_contents li {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
#table_of_contents li a {
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
header.title {
|
||||
border-bottom: solid 1px #e1e4e8;
|
||||
}
|
||||
header.title > h1 {
|
||||
margin-bottom: 0.25em;
|
||||
}
|
||||
header.title > .description {
|
||||
display: block;
|
||||
margin-bottom: 0.5em;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
header.title .version {
|
||||
font-size: 0.8em;
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
footer#edit {
|
||||
border-top: solid 1px #e1e4e8;
|
||||
margin: 3em 0 4em 0;
|
||||
padding-top: 2em;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="banner">
|
||||
<div id="rainbar"></div>
|
||||
<div id="logobar">
|
||||
<svg class="logo" role="img" height="32" width="32" viewBox="0 0 700 700">
|
||||
<polygon fill="#cb0000" points="0,700 700,700 700,0 0,0"></polygon>
|
||||
<polygon fill="#ffffff" points="150,550 350,550 350,250 450,250 450,550 550,550 550,150 150,150"></polygon>
|
||||
</svg>
|
||||
<div class="title">
|
||||
npm command-line interface
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section id="content">
|
||||
<header class="title">
|
||||
<h1 id="----folders----1092">
|
||||
<span>folders</span>
|
||||
<span class="version">@10.9.2</span>
|
||||
</h1>
|
||||
<span class="description">Folder Structures Used by npm</span>
|
||||
</header>
|
||||
|
||||
<section id="table_of_contents">
|
||||
<h2 id="table-of-contents">Table of contents</h2>
|
||||
<div id="_table_of_contents"><ul><li><a href="#description">Description</a></li><ul><li><a href="#tldr">tl;dr</a></li><li><a href="#prefix-configuration">prefix Configuration</a></li><li><a href="#node-modules">Node Modules</a></li><li><a href="#executables">Executables</a></li><li><a href="#man-pages">Man Pages</a></li><li><a href="#cache">Cache</a></li><li><a href="#temp-files">Temp Files</a></li></ul><li><a href="#more-information">More Information</a></li><ul><li><a href="#global-installation">Global Installation</a></li><li><a href="#cycles-conflicts-and-folder-parsimony">Cycles, Conflicts, and Folder Parsimony</a></li><li><a href="#example">Example</a></li><li><a href="#publishing">Publishing</a></li></ul><li><a href="#see-also">See also</a></li></ul></div>
|
||||
</section>
|
||||
|
||||
<div id="_content"><h3 id="description">Description</h3>
|
||||
<p>npm puts various things on your computer. That's its job.</p>
|
||||
<p>This document will tell you what it puts where.</p>
|
||||
<h4 id="tldr">tl;dr</h4>
|
||||
<ul>
|
||||
<li>Local install (default): puts stuff in <code>./node_modules</code> of the current
|
||||
package root.</li>
|
||||
<li>Global install (with <code>-g</code>): puts stuff in /usr/local or wherever node
|
||||
is installed.</li>
|
||||
<li>Install it <strong>locally</strong> if you're going to <code>require()</code> it.</li>
|
||||
<li>Install it <strong>globally</strong> if you're going to run it on the command line.</li>
|
||||
<li>If you need both, then install it in both places, or use <code>npm link</code>.</li>
|
||||
</ul>
|
||||
<h4 id="prefix-configuration">prefix Configuration</h4>
|
||||
<p>The <a href="../using-npm/config#prefix.html"><code>prefix</code> config</a> defaults to the location where
|
||||
node is installed. On most systems, this is <code>/usr/local</code>. On Windows, it's
|
||||
<code>%AppData%\npm</code>. On Unix systems, it's one level up, since node is typically
|
||||
installed at <code>{prefix}/bin/node</code> rather than <code>{prefix}/node.exe</code>.</p>
|
||||
<p>When the <code>global</code> 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.</p>
|
||||
<h4 id="node-modules">Node Modules</h4>
|
||||
<p>Packages are dropped into the <code>node_modules</code> folder under the <code>prefix</code>.
|
||||
When installing locally, this means that you can
|
||||
<code>require("packagename")</code> to load its main module, or
|
||||
<code>require("packagename/lib/path/to/sub/module")</code> to load other modules.</p>
|
||||
<p>Global installs on Unix systems go to <code>{prefix}/lib/node_modules</code>.
|
||||
Global installs on Windows go to <code>{prefix}/node_modules</code> (that is, no
|
||||
<code>lib</code> folder.)</p>
|
||||
<p>Scoped packages are installed the same way, except they are grouped together
|
||||
in a sub-folder of the relevant <code>node_modules</code> folder with the name of that
|
||||
scope prefix by the @ symbol, e.g. <code>npm install @myorg/package</code> would place
|
||||
the package in <code>{prefix}/node_modules/@myorg/package</code>. See
|
||||
<a href="../using-npm/scope.html"><code>scope</code></a> for more details.</p>
|
||||
<p>If you wish to <code>require()</code> a package, then install it locally.</p>
|
||||
<h4 id="executables">Executables</h4>
|
||||
<p>When in global mode, executables are linked into <code>{prefix}/bin</code> on Unix,
|
||||
or directly into <code>{prefix}</code> on Windows. Ensure that path is in your
|
||||
terminal's <code>PATH</code> environment to run them.</p>
|
||||
<p>When in local mode, executables are linked into
|
||||
<code>./node_modules/.bin</code> 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 <code>npm test</code>.)</p>
|
||||
<h4 id="man-pages">Man Pages</h4>
|
||||
<p>When in global mode, man pages are linked into <code>{prefix}/share/man</code>.</p>
|
||||
<p>When in local mode, man pages are not installed.</p>
|
||||
<p>Man pages are not installed on Windows systems.</p>
|
||||
<h4 id="cache">Cache</h4>
|
||||
<p>See <a href="../commands/npm-cache.html"><code>npm cache</code></a>. Cache files are stored in <code>~/.npm</code> on Posix, or
|
||||
<code>%LocalAppData%/npm-cache</code> on Windows.</p>
|
||||
<p>This is controlled by the <a href="../using-npm/config#cache.html"><code>cache</code> config</a> param.</p>
|
||||
<h4 id="temp-files">Temp Files</h4>
|
||||
<p>Temporary files are stored by default in the folder specified by the
|
||||
<a href="../using-npm/config#tmp.html"><code>tmp</code> config</a>, which defaults to the TMPDIR, TMP, or
|
||||
TEMP environment variables, or <code>/tmp</code> on Unix and <code>c:\windows\temp</code> on Windows.</p>
|
||||
<p>Temp files are given a unique folder under this root for each run of the
|
||||
program, and are deleted upon successful exit.</p>
|
||||
<h3 id="more-information">More Information</h3>
|
||||
<p>When installing locally, npm first tries to find an appropriate
|
||||
<code>prefix</code> folder. This is so that <code>npm install foo@1.2.3</code> will install
|
||||
to the sensible root of your package, even if you happen to have <code>cd</code>ed
|
||||
into some other folder.</p>
|
||||
<p>Starting at the $PWD, npm will walk up the folder tree checking for a
|
||||
folder that contains either a <code>package.json</code> file, or a <code>node_modules</code>
|
||||
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.)</p>
|
||||
<p>If no package root is found, then the current folder is used.</p>
|
||||
<p>When you run <code>npm install foo@1.2.3</code>, then the package is loaded into
|
||||
the cache, and then unpacked into <code>./node_modules/foo</code>. Then, any of
|
||||
foo's dependencies are similarly unpacked into
|
||||
<code>./node_modules/foo/node_modules/...</code>.</p>
|
||||
<p>Any bin files are symlinked to <code>./node_modules/.bin/</code>, so that they may
|
||||
be found by npm scripts when necessary.</p>
|
||||
<h4 id="global-installation">Global Installation</h4>
|
||||
<p>If the <a href="../using-npm/config#global.html"><code>global</code> config</a> is set to true, then npm will
|
||||
install packages "globally".</p>
|
||||
<p>For global installation, packages are installed roughly the same way,
|
||||
but using the folders described above.</p>
|
||||
<h4 id="cycles-conflicts-and-folder-parsimony">Cycles, Conflicts, and Folder Parsimony</h4>
|
||||
<p>Cycles are handled using the property of node's module system that it
|
||||
walks up the directories looking for <code>node_modules</code> folders. So, at every
|
||||
stage, if a package is already installed in an ancestor <code>node_modules</code>
|
||||
folder, then it is not installed at the current location.</p>
|
||||
<p>Consider the case above, where <code>foo -> bar -> baz</code>. Imagine if, in
|
||||
addition to that, baz depended on bar, so you'd have:
|
||||
<code>foo -> bar -> baz -> bar -> baz ...</code>. However, since the folder
|
||||
structure is: <code>foo/node_modules/bar/node_modules/baz</code>, there's no need to
|
||||
put another copy of bar into <code>.../baz/node_modules</code>, since when baz calls
|
||||
<code>require("bar")</code>, it will get the copy that is installed in
|
||||
<code>foo/node_modules/bar</code>.</p>
|
||||
<p>This shortcut is only used if the exact same
|
||||
version would be installed in multiple nested <code>node_modules</code> folders. It
|
||||
is still possible to have <code>a/node_modules/b/node_modules/a</code> if the two
|
||||
"a" packages are different versions. However, without repeating the
|
||||
exact same package multiple times, an infinite regress will always be
|
||||
prevented.</p>
|
||||
<p>Another optimization can be made by installing dependencies at the
|
||||
highest level possible, below the localized "target" folder (hoisting).
|
||||
Since version 3, npm hoists dependencies by default.</p>
|
||||
<h4 id="example">Example</h4>
|
||||
<p>Consider this dependency graph:</p>
|
||||
<pre><code class="language-bash">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
|
||||
</code></pre>
|
||||
<p>In this case, we might expect a folder structure like this
|
||||
(with all dependencies hoisted to the highest level possible):</p>
|
||||
<pre><code class="language-bash">foo
|
||||
+-- node_modules
|
||||
+-- blerg (1.2.5) <---[A]
|
||||
+-- bar (1.2.3) <---[B]
|
||||
| +-- node_modules
|
||||
| +-- baz (2.0.2) <---[C]
|
||||
+-- asdf (2.3.4)
|
||||
+-- baz (1.2.3) <---[D]
|
||||
+-- quux (3.2.0) <---[E]
|
||||
</code></pre>
|
||||
<p>Since foo depends directly on <code>bar@1.2.3</code> and <code>baz@1.2.3</code>, those are
|
||||
installed in foo's <code>node_modules</code> folder.</p>
|
||||
<p>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 satisfies bar's dependency on <code>blerg@1.x</code>,
|
||||
it does not install another copy under [B].</p>
|
||||
<p>Bar [B] also has dependencies on baz and asdf. Because it depends on <code>baz@2.x</code>, it cannot
|
||||
re-use the <code>baz@1.2.3</code> installed in the parent <code>node_modules</code> folder [D],
|
||||
and must install its own copy [C]. In order to minimize duplication, npm hoists
|
||||
dependencies to the top level by default, so asdf is installed under [A].</p>
|
||||
<p>Underneath bar, the <code>baz -> quux -> bar</code> 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. Likewise, quux's [E]
|
||||
folder tree is empty, because its dependency on bar is satisfied
|
||||
by the parent folder copy installed at [B].</p>
|
||||
<p>For a graphical breakdown of what is installed where, use <code>npm ls</code>.</p>
|
||||
<h4 id="publishing">Publishing</h4>
|
||||
<p>Upon publishing, npm will look in the <code>node_modules</code> folder. If any of
|
||||
the items there are not in the <code>bundleDependencies</code> array, then they will
|
||||
not be included in the package tarball.</p>
|
||||
<p>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 <a href="../configuring-npm/package-json.html"><code>package.json</code></a> for more information.</p>
|
||||
<h3 id="see-also">See also</h3>
|
||||
<ul>
|
||||
<li><a href="../configuring-npm/package-json.html">package.json</a></li>
|
||||
<li><a href="../commands/npm-install.html">npm install</a></li>
|
||||
<li><a href="../commands/npm-pack.html">npm pack</a></li>
|
||||
<li><a href="../commands/npm-cache.html">npm cache</a></li>
|
||||
<li><a href="../commands/npm-config.html">npm config</a></li>
|
||||
<li><a href="../configuring-npm/npmrc.html">npmrc</a></li>
|
||||
<li><a href="../using-npm/config.html">config</a></li>
|
||||
<li><a href="../commands/npm-publish.html">npm publish</a></li>
|
||||
</ul></div>
|
||||
|
||||
<footer id="edit">
|
||||
<a href="https://github.com/npm/cli/edit/latest/docs/content/configuring-npm/folders.md">
|
||||
<svg role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentcolor" style="vertical-align: text-bottom; margin-right: 0.3em;">
|
||||
<path fill-rule="evenodd" d="M11.013 1.427a1.75 1.75 0 012.474 0l1.086 1.086a1.75 1.75 0 010 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.251.93a.75.75 0 01-.927-.928l.929-3.25a1.75 1.75 0 01.445-.758l8.61-8.61zm1.414 1.06a.25.25 0 00-.354 0L10.811 3.75l1.439 1.44 1.263-1.263a.25.25 0 000-.354l-1.086-1.086zM11.189 6.25L9.75 4.81l-6.286 6.287a.25.25 0 00-.064.108l-.558 1.953 1.953-.558a.249.249 0 00.108-.064l6.286-6.286z"></path>
|
||||
</svg>
|
||||
Edit this page on GitHub
|
||||
</a>
|
||||
</footer>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
</body></html>
|
225
Dependencies/NodeJS/node_modules/npm/docs/output/configuring-npm/install.html
generated
vendored
Normal file
225
Dependencies/NodeJS/node_modules/npm/docs/output/configuring-npm/install.html
generated
vendored
Normal file
@ -0,0 +1,225 @@
|
||||
<!DOCTYPE html><html><head>
|
||||
<meta charset="utf-8">
|
||||
<title>install</title>
|
||||
<style>
|
||||
body {
|
||||
background-color: #ffffff;
|
||||
color: #24292e;
|
||||
|
||||
margin: 0;
|
||||
|
||||
line-height: 1.5;
|
||||
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
|
||||
}
|
||||
#rainbar {
|
||||
height: 10px;
|
||||
background-image: linear-gradient(139deg, #fb8817, #ff4b01, #c12127, #e02aff);
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #0366d6;
|
||||
}
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
pre {
|
||||
margin: 1em 0px;
|
||||
padding: 1em;
|
||||
border: solid 1px #e1e4e8;
|
||||
border-radius: 6px;
|
||||
|
||||
display: block;
|
||||
overflow: auto;
|
||||
|
||||
white-space: pre;
|
||||
|
||||
background-color: #f6f8fa;
|
||||
color: #393a34;
|
||||
}
|
||||
code {
|
||||
font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace;
|
||||
font-size: 85%;
|
||||
padding: 0.2em 0.4em;
|
||||
background-color: #f6f8fa;
|
||||
color: #393a34;
|
||||
}
|
||||
pre > code {
|
||||
padding: 0;
|
||||
background-color: inherit;
|
||||
color: inherit;
|
||||
}
|
||||
h1, h2, h3 {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
#logobar {
|
||||
background-color: #333333;
|
||||
margin: 0 auto;
|
||||
padding: 1em 4em;
|
||||
}
|
||||
#logobar .logo {
|
||||
float: left;
|
||||
}
|
||||
#logobar .title {
|
||||
font-weight: 600;
|
||||
color: #dddddd;
|
||||
float: left;
|
||||
margin: 5px 0 0 1em;
|
||||
}
|
||||
#logobar:after {
|
||||
content: "";
|
||||
display: block;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
#content {
|
||||
margin: 0 auto;
|
||||
padding: 0 4em;
|
||||
}
|
||||
|
||||
#table_of_contents > h2 {
|
||||
font-size: 1.17em;
|
||||
}
|
||||
#table_of_contents ul:first-child {
|
||||
border: solid 1px #e1e4e8;
|
||||
border-radius: 6px;
|
||||
padding: 1em;
|
||||
background-color: #f6f8fa;
|
||||
color: #393a34;
|
||||
}
|
||||
#table_of_contents ul {
|
||||
list-style-type: none;
|
||||
padding-left: 1.5em;
|
||||
}
|
||||
#table_of_contents li {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
#table_of_contents li a {
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
header.title {
|
||||
border-bottom: solid 1px #e1e4e8;
|
||||
}
|
||||
header.title > h1 {
|
||||
margin-bottom: 0.25em;
|
||||
}
|
||||
header.title > .description {
|
||||
display: block;
|
||||
margin-bottom: 0.5em;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
header.title .version {
|
||||
font-size: 0.8em;
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
footer#edit {
|
||||
border-top: solid 1px #e1e4e8;
|
||||
margin: 3em 0 4em 0;
|
||||
padding-top: 2em;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="banner">
|
||||
<div id="rainbar"></div>
|
||||
<div id="logobar">
|
||||
<svg class="logo" role="img" height="32" width="32" viewBox="0 0 700 700">
|
||||
<polygon fill="#cb0000" points="0,700 700,700 700,0 0,0"></polygon>
|
||||
<polygon fill="#ffffff" points="150,550 350,550 350,250 450,250 450,550 550,550 550,150 150,150"></polygon>
|
||||
</svg>
|
||||
<div class="title">
|
||||
npm command-line interface
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section id="content">
|
||||
<header class="title">
|
||||
<h1 id="----install----1092">
|
||||
<span>install</span>
|
||||
<span class="version">@10.9.2</span>
|
||||
</h1>
|
||||
<span class="description">Download and install node and npm</span>
|
||||
</header>
|
||||
|
||||
<section id="table_of_contents">
|
||||
<h2 id="table-of-contents">Table of contents</h2>
|
||||
<div id="_table_of_contents"><ul><li><a href="#description">Description</a></li><li><a href="#overview">Overview</a></li><li><a href="#checking-your-version-of-npm-and-nodejs">Checking your version of npm and Node.js</a></li><li><a href="#using-a-node-version-manager-to-install-nodejs-and-npm">Using a Node version manager to install Node.js and npm</a></li><li><a href="#using-a-node-installer-to-install-nodejs-and-npm">Using a Node installer to install Node.js and npm</a></li><ul><li><a href="#os-x-or-windows-node-installers">OS X or Windows Node installers</a></li><li><a href="#linux-or-other-operating-systems-node-installers">Linux or other operating systems Node installers</a></li><li><a href="#less-common-operating-systems">Less-common operating systems</a></li></ul></ul></div>
|
||||
</section>
|
||||
|
||||
<div id="_content"><h3 id="description">Description</h3>
|
||||
<p>To publish and install packages to and from the public npm registry, you
|
||||
must install Node.js and the npm command line interface using either a Node
|
||||
version manager or a Node installer. <strong>We strongly recommend using a Node
|
||||
version manager to install Node.js and npm.</strong> We do not recommend using a
|
||||
Node installer, since the Node installation process installs npm in a
|
||||
directory with local permissions and can cause permissions errors when you
|
||||
run npm packages globally.</p>
|
||||
<h3 id="overview">Overview</h3>
|
||||
<ul>
|
||||
<li><a href="#checking-your-version-of-npm-and-nodejs">Checking your version of npm and
|
||||
Node.js</a></li>
|
||||
<li><a href="#using-a-node-version-manager-to-install-nodejs-and-npm">Using a Node version manager to install Node.js and
|
||||
npm</a></li>
|
||||
<li><a href="#using-a-node-installer-to-install-nodejs-and-npm">Using a Node installer to install Node.js and
|
||||
npm</a></li>
|
||||
</ul>
|
||||
<h3 id="checking-your-version-of-npm-and-nodejs">Checking your version of npm and Node.js</h3>
|
||||
<p>To see if you already have Node.js and npm installed and check the
|
||||
installed version, run the following commands:</p>
|
||||
<pre><code>node -v
|
||||
npm -v
|
||||
</code></pre>
|
||||
<h3 id="using-a-node-version-manager-to-install-nodejs-and-npm">Using a Node version manager to install Node.js and npm</h3>
|
||||
<p>Node version managers allow you to install and switch between multiple
|
||||
versions of Node.js and npm on your system so you can test your
|
||||
applications on multiple versions of npm to ensure they work for users on
|
||||
different versions. You can
|
||||
<a href="https://github.com/search?q=node+version+manager+archived%3Afalse&type=repositories&ref=advsearch">search for them on GitHub</a>.</p>
|
||||
<h3 id="using-a-node-installer-to-install-nodejs-and-npm">Using a Node installer to install Node.js and npm</h3>
|
||||
<p>If you are unable to use a Node version manager, you can use a Node
|
||||
installer to install both Node.js and npm on your system.</p>
|
||||
<ul>
|
||||
<li><a href="https://nodejs.org/en/download/">Node.js installer</a></li>
|
||||
<li><a href="https://github.com/nodesource/distributions">NodeSource installer</a>. If
|
||||
you use Linux, we recommend that you use a NodeSource installer.</li>
|
||||
</ul>
|
||||
<h4 id="os-x-or-windows-node-installers">OS X or Windows Node installers</h4>
|
||||
<p>If you're using OS X or Windows, use one of the installers from the
|
||||
<a href="https://nodejs.org/en/download/">Node.js download page</a>. Be sure to
|
||||
install the version labeled <strong>LTS</strong>. Other versions have not yet been
|
||||
tested with npm.</p>
|
||||
<h4 id="linux-or-other-operating-systems-node-installers">Linux or other operating systems Node installers</h4>
|
||||
<p>If you're using Linux or another operating system, use one of the following
|
||||
installers:</p>
|
||||
<ul>
|
||||
<li><a href="https://github.com/nodesource/distributions">NodeSource installer</a>
|
||||
(recommended)</li>
|
||||
<li>One of the installers on the <a href="https://nodejs.org/en/download/">Node.js download
|
||||
page</a></li>
|
||||
</ul>
|
||||
<p>Or see <a href="https://nodejs.org/en/download/package-manager/">this page</a> to
|
||||
install npm for Linux in the way many Linux developers prefer.</p>
|
||||
<h4 id="less-common-operating-systems">Less-common operating systems</h4>
|
||||
<p>For more information on installing Node.js on a variety of operating
|
||||
systems, see <a href="https://nodejs.org/en/download/package-manager/">this page</a>.</p></div>
|
||||
|
||||
<footer id="edit">
|
||||
<a href="https://github.com/npm/cli/edit/latest/docs/content/configuring-npm/install.md">
|
||||
<svg role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentcolor" style="vertical-align: text-bottom; margin-right: 0.3em;">
|
||||
<path fill-rule="evenodd" d="M11.013 1.427a1.75 1.75 0 012.474 0l1.086 1.086a1.75 1.75 0 010 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.251.93a.75.75 0 01-.927-.928l.929-3.25a1.75 1.75 0 01.445-.758l8.61-8.61zm1.414 1.06a.25.25 0 00-.354 0L10.811 3.75l1.439 1.44 1.263-1.263a.25.25 0 000-.354l-1.086-1.086zM11.189 6.25L9.75 4.81l-6.286 6.287a.25.25 0 00-.064.108l-.558 1.953 1.953-.558a.249.249 0 00.108-.064l6.286-6.286z"></path>
|
||||
</svg>
|
||||
Edit this page on GitHub
|
||||
</a>
|
||||
</footer>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
</body></html>
|
330
Dependencies/NodeJS/node_modules/npm/docs/output/configuring-npm/npm-global.html
generated
vendored
Normal file
330
Dependencies/NodeJS/node_modules/npm/docs/output/configuring-npm/npm-global.html
generated
vendored
Normal file
@ -0,0 +1,330 @@
|
||||
<!DOCTYPE html><html><head>
|
||||
<meta charset="utf-8">
|
||||
<title>folders</title>
|
||||
<style>
|
||||
body {
|
||||
background-color: #ffffff;
|
||||
color: #24292e;
|
||||
|
||||
margin: 0;
|
||||
|
||||
line-height: 1.5;
|
||||
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
|
||||
}
|
||||
#rainbar {
|
||||
height: 10px;
|
||||
background-image: linear-gradient(139deg, #fb8817, #ff4b01, #c12127, #e02aff);
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #0366d6;
|
||||
}
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
pre {
|
||||
margin: 1em 0px;
|
||||
padding: 1em;
|
||||
border: solid 1px #e1e4e8;
|
||||
border-radius: 6px;
|
||||
|
||||
display: block;
|
||||
overflow: auto;
|
||||
|
||||
white-space: pre;
|
||||
|
||||
background-color: #f6f8fa;
|
||||
color: #393a34;
|
||||
}
|
||||
code {
|
||||
font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace;
|
||||
font-size: 85%;
|
||||
padding: 0.2em 0.4em;
|
||||
background-color: #f6f8fa;
|
||||
color: #393a34;
|
||||
}
|
||||
pre > code {
|
||||
padding: 0;
|
||||
background-color: inherit;
|
||||
color: inherit;
|
||||
}
|
||||
h1, h2, h3 {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
#logobar {
|
||||
background-color: #333333;
|
||||
margin: 0 auto;
|
||||
padding: 1em 4em;
|
||||
}
|
||||
#logobar .logo {
|
||||
float: left;
|
||||
}
|
||||
#logobar .title {
|
||||
font-weight: 600;
|
||||
color: #dddddd;
|
||||
float: left;
|
||||
margin: 5px 0 0 1em;
|
||||
}
|
||||
#logobar:after {
|
||||
content: "";
|
||||
display: block;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
#content {
|
||||
margin: 0 auto;
|
||||
padding: 0 4em;
|
||||
}
|
||||
|
||||
#table_of_contents > h2 {
|
||||
font-size: 1.17em;
|
||||
}
|
||||
#table_of_contents ul:first-child {
|
||||
border: solid 1px #e1e4e8;
|
||||
border-radius: 6px;
|
||||
padding: 1em;
|
||||
background-color: #f6f8fa;
|
||||
color: #393a34;
|
||||
}
|
||||
#table_of_contents ul {
|
||||
list-style-type: none;
|
||||
padding-left: 1.5em;
|
||||
}
|
||||
#table_of_contents li {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
#table_of_contents li a {
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
header.title {
|
||||
border-bottom: solid 1px #e1e4e8;
|
||||
}
|
||||
header.title > h1 {
|
||||
margin-bottom: 0.25em;
|
||||
}
|
||||
header.title > .description {
|
||||
display: block;
|
||||
margin-bottom: 0.5em;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
header.title .version {
|
||||
font-size: 0.8em;
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
footer#edit {
|
||||
border-top: solid 1px #e1e4e8;
|
||||
margin: 3em 0 4em 0;
|
||||
padding-top: 2em;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="banner">
|
||||
<div id="rainbar"></div>
|
||||
<div id="logobar">
|
||||
<svg class="logo" role="img" height="32" width="32" viewBox="0 0 700 700">
|
||||
<polygon fill="#cb0000" points="0,700 700,700 700,0 0,0"></polygon>
|
||||
<polygon fill="#ffffff" points="150,550 350,550 350,250 450,250 450,550 550,550 550,150 150,150"></polygon>
|
||||
</svg>
|
||||
<div class="title">
|
||||
npm command-line interface
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section id="content">
|
||||
<header class="title">
|
||||
<h1 id="----folders----1092">
|
||||
<span>folders</span>
|
||||
<span class="version">@10.9.2</span>
|
||||
</h1>
|
||||
<span class="description">Folder Structures Used by npm</span>
|
||||
</header>
|
||||
|
||||
<section id="table_of_contents">
|
||||
<h2 id="table-of-contents">Table of contents</h2>
|
||||
<div id="_table_of_contents"><ul><li><a href="#description">Description</a></li><ul><li><a href="#tldr">tl;dr</a></li><li><a href="#prefix-configuration">prefix Configuration</a></li><li><a href="#node-modules">Node Modules</a></li><li><a href="#executables">Executables</a></li><li><a href="#man-pages">Man Pages</a></li><li><a href="#cache">Cache</a></li><li><a href="#temp-files">Temp Files</a></li></ul><li><a href="#more-information">More Information</a></li><ul><li><a href="#global-installation">Global Installation</a></li><li><a href="#cycles-conflicts-and-folder-parsimony">Cycles, Conflicts, and Folder Parsimony</a></li><li><a href="#example">Example</a></li><li><a href="#publishing">Publishing</a></li></ul><li><a href="#see-also">See also</a></li></ul></div>
|
||||
</section>
|
||||
|
||||
<div id="_content"><h3 id="description">Description</h3>
|
||||
<p>npm puts various things on your computer. That's its job.</p>
|
||||
<p>This document will tell you what it puts where.</p>
|
||||
<h4 id="tldr">tl;dr</h4>
|
||||
<ul>
|
||||
<li>Local install (default): puts stuff in <code>./node_modules</code> of the current
|
||||
package root.</li>
|
||||
<li>Global install (with <code>-g</code>): puts stuff in /usr/local or wherever node
|
||||
is installed.</li>
|
||||
<li>Install it <strong>locally</strong> if you're going to <code>require()</code> it.</li>
|
||||
<li>Install it <strong>globally</strong> if you're going to run it on the command line.</li>
|
||||
<li>If you need both, then install it in both places, or use <code>npm link</code>.</li>
|
||||
</ul>
|
||||
<h4 id="prefix-configuration">prefix Configuration</h4>
|
||||
<p>The <a href="../using-npm/config#prefix.html"><code>prefix</code> config</a> defaults to the location where
|
||||
node is installed. On most systems, this is <code>/usr/local</code>. On Windows, it's
|
||||
<code>%AppData%\npm</code>. On Unix systems, it's one level up, since node is typically
|
||||
installed at <code>{prefix}/bin/node</code> rather than <code>{prefix}/node.exe</code>.</p>
|
||||
<p>When the <code>global</code> 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.</p>
|
||||
<h4 id="node-modules">Node Modules</h4>
|
||||
<p>Packages are dropped into the <code>node_modules</code> folder under the <code>prefix</code>.
|
||||
When installing locally, this means that you can
|
||||
<code>require("packagename")</code> to load its main module, or
|
||||
<code>require("packagename/lib/path/to/sub/module")</code> to load other modules.</p>
|
||||
<p>Global installs on Unix systems go to <code>{prefix}/lib/node_modules</code>.
|
||||
Global installs on Windows go to <code>{prefix}/node_modules</code> (that is, no
|
||||
<code>lib</code> folder.)</p>
|
||||
<p>Scoped packages are installed the same way, except they are grouped together
|
||||
in a sub-folder of the relevant <code>node_modules</code> folder with the name of that
|
||||
scope prefix by the @ symbol, e.g. <code>npm install @myorg/package</code> would place
|
||||
the package in <code>{prefix}/node_modules/@myorg/package</code>. See
|
||||
<a href="../using-npm/scope.html"><code>scope</code></a> for more details.</p>
|
||||
<p>If you wish to <code>require()</code> a package, then install it locally.</p>
|
||||
<h4 id="executables">Executables</h4>
|
||||
<p>When in global mode, executables are linked into <code>{prefix}/bin</code> on Unix,
|
||||
or directly into <code>{prefix}</code> on Windows. Ensure that path is in your
|
||||
terminal's <code>PATH</code> environment to run them.</p>
|
||||
<p>When in local mode, executables are linked into
|
||||
<code>./node_modules/.bin</code> 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 <code>npm test</code>.)</p>
|
||||
<h4 id="man-pages">Man Pages</h4>
|
||||
<p>When in global mode, man pages are linked into <code>{prefix}/share/man</code>.</p>
|
||||
<p>When in local mode, man pages are not installed.</p>
|
||||
<p>Man pages are not installed on Windows systems.</p>
|
||||
<h4 id="cache">Cache</h4>
|
||||
<p>See <a href="../commands/npm-cache.html"><code>npm cache</code></a>. Cache files are stored in <code>~/.npm</code> on Posix, or
|
||||
<code>%LocalAppData%/npm-cache</code> on Windows.</p>
|
||||
<p>This is controlled by the <a href="../using-npm/config#cache.html"><code>cache</code> config</a> param.</p>
|
||||
<h4 id="temp-files">Temp Files</h4>
|
||||
<p>Temporary files are stored by default in the folder specified by the
|
||||
<a href="../using-npm/config#tmp.html"><code>tmp</code> config</a>, which defaults to the TMPDIR, TMP, or
|
||||
TEMP environment variables, or <code>/tmp</code> on Unix and <code>c:\windows\temp</code> on Windows.</p>
|
||||
<p>Temp files are given a unique folder under this root for each run of the
|
||||
program, and are deleted upon successful exit.</p>
|
||||
<h3 id="more-information">More Information</h3>
|
||||
<p>When installing locally, npm first tries to find an appropriate
|
||||
<code>prefix</code> folder. This is so that <code>npm install foo@1.2.3</code> will install
|
||||
to the sensible root of your package, even if you happen to have <code>cd</code>ed
|
||||
into some other folder.</p>
|
||||
<p>Starting at the $PWD, npm will walk up the folder tree checking for a
|
||||
folder that contains either a <code>package.json</code> file, or a <code>node_modules</code>
|
||||
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.)</p>
|
||||
<p>If no package root is found, then the current folder is used.</p>
|
||||
<p>When you run <code>npm install foo@1.2.3</code>, then the package is loaded into
|
||||
the cache, and then unpacked into <code>./node_modules/foo</code>. Then, any of
|
||||
foo's dependencies are similarly unpacked into
|
||||
<code>./node_modules/foo/node_modules/...</code>.</p>
|
||||
<p>Any bin files are symlinked to <code>./node_modules/.bin/</code>, so that they may
|
||||
be found by npm scripts when necessary.</p>
|
||||
<h4 id="global-installation">Global Installation</h4>
|
||||
<p>If the <a href="../using-npm/config#global.html"><code>global</code> config</a> is set to true, then npm will
|
||||
install packages "globally".</p>
|
||||
<p>For global installation, packages are installed roughly the same way,
|
||||
but using the folders described above.</p>
|
||||
<h4 id="cycles-conflicts-and-folder-parsimony">Cycles, Conflicts, and Folder Parsimony</h4>
|
||||
<p>Cycles are handled using the property of node's module system that it
|
||||
walks up the directories looking for <code>node_modules</code> folders. So, at every
|
||||
stage, if a package is already installed in an ancestor <code>node_modules</code>
|
||||
folder, then it is not installed at the current location.</p>
|
||||
<p>Consider the case above, where <code>foo -> bar -> baz</code>. Imagine if, in
|
||||
addition to that, baz depended on bar, so you'd have:
|
||||
<code>foo -> bar -> baz -> bar -> baz ...</code>. However, since the folder
|
||||
structure is: <code>foo/node_modules/bar/node_modules/baz</code>, there's no need to
|
||||
put another copy of bar into <code>.../baz/node_modules</code>, since when baz calls
|
||||
<code>require("bar")</code>, it will get the copy that is installed in
|
||||
<code>foo/node_modules/bar</code>.</p>
|
||||
<p>This shortcut is only used if the exact same
|
||||
version would be installed in multiple nested <code>node_modules</code> folders. It
|
||||
is still possible to have <code>a/node_modules/b/node_modules/a</code> if the two
|
||||
"a" packages are different versions. However, without repeating the
|
||||
exact same package multiple times, an infinite regress will always be
|
||||
prevented.</p>
|
||||
<p>Another optimization can be made by installing dependencies at the
|
||||
highest level possible, below the localized "target" folder (hoisting).
|
||||
Since version 3, npm hoists dependencies by default.</p>
|
||||
<h4 id="example">Example</h4>
|
||||
<p>Consider this dependency graph:</p>
|
||||
<pre><code class="language-bash">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
|
||||
</code></pre>
|
||||
<p>In this case, we might expect a folder structure like this
|
||||
(with all dependencies hoisted to the highest level possible):</p>
|
||||
<pre><code class="language-bash">foo
|
||||
+-- node_modules
|
||||
+-- blerg (1.2.5) <---[A]
|
||||
+-- bar (1.2.3) <---[B]
|
||||
| +-- node_modules
|
||||
| +-- baz (2.0.2) <---[C]
|
||||
+-- asdf (2.3.4)
|
||||
+-- baz (1.2.3) <---[D]
|
||||
+-- quux (3.2.0) <---[E]
|
||||
</code></pre>
|
||||
<p>Since foo depends directly on <code>bar@1.2.3</code> and <code>baz@1.2.3</code>, those are
|
||||
installed in foo's <code>node_modules</code> folder.</p>
|
||||
<p>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 satisfies bar's dependency on <code>blerg@1.x</code>,
|
||||
it does not install another copy under [B].</p>
|
||||
<p>Bar [B] also has dependencies on baz and asdf. Because it depends on <code>baz@2.x</code>, it cannot
|
||||
re-use the <code>baz@1.2.3</code> installed in the parent <code>node_modules</code> folder [D],
|
||||
and must install its own copy [C]. In order to minimize duplication, npm hoists
|
||||
dependencies to the top level by default, so asdf is installed under [A].</p>
|
||||
<p>Underneath bar, the <code>baz -> quux -> bar</code> 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. Likewise, quux's [E]
|
||||
folder tree is empty, because its dependency on bar is satisfied
|
||||
by the parent folder copy installed at [B].</p>
|
||||
<p>For a graphical breakdown of what is installed where, use <code>npm ls</code>.</p>
|
||||
<h4 id="publishing">Publishing</h4>
|
||||
<p>Upon publishing, npm will look in the <code>node_modules</code> folder. If any of
|
||||
the items there are not in the <code>bundleDependencies</code> array, then they will
|
||||
not be included in the package tarball.</p>
|
||||
<p>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 <a href="../configuring-npm/package-json.html"><code>package.json</code></a> for more information.</p>
|
||||
<h3 id="see-also">See also</h3>
|
||||
<ul>
|
||||
<li><a href="../configuring-npm/package-json.html">package.json</a></li>
|
||||
<li><a href="../commands/npm-install.html">npm install</a></li>
|
||||
<li><a href="../commands/npm-pack.html">npm pack</a></li>
|
||||
<li><a href="../commands/npm-cache.html">npm cache</a></li>
|
||||
<li><a href="../commands/npm-config.html">npm config</a></li>
|
||||
<li><a href="../configuring-npm/npmrc.html">npmrc</a></li>
|
||||
<li><a href="../using-npm/config.html">config</a></li>
|
||||
<li><a href="../commands/npm-publish.html">npm publish</a></li>
|
||||
</ul></div>
|
||||
|
||||
<footer id="edit">
|
||||
<a href="https://github.com/npm/cli/edit/latest/docs/content/configuring-npm/folders.md">
|
||||
<svg role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentcolor" style="vertical-align: text-bottom; margin-right: 0.3em;">
|
||||
<path fill-rule="evenodd" d="M11.013 1.427a1.75 1.75 0 012.474 0l1.086 1.086a1.75 1.75 0 010 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.251.93a.75.75 0 01-.927-.928l.929-3.25a1.75 1.75 0 01.445-.758l8.61-8.61zm1.414 1.06a.25.25 0 00-.354 0L10.811 3.75l1.439 1.44 1.263-1.263a.25.25 0 000-.354l-1.086-1.086zM11.189 6.25L9.75 4.81l-6.286 6.287a.25.25 0 00-.064.108l-.558 1.953 1.953-.558a.249.249 0 00.108-.064l6.286-6.286z"></path>
|
||||
</svg>
|
||||
Edit this page on GitHub
|
||||
</a>
|
||||
</footer>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
</body></html>
|
1111
Dependencies/NodeJS/node_modules/npm/docs/output/configuring-npm/npm-json.html
generated
vendored
Normal file
1111
Dependencies/NodeJS/node_modules/npm/docs/output/configuring-npm/npm-json.html
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
192
Dependencies/NodeJS/node_modules/npm/docs/output/configuring-npm/npm-shrinkwrap-json.html
generated
vendored
Normal file
192
Dependencies/NodeJS/node_modules/npm/docs/output/configuring-npm/npm-shrinkwrap-json.html
generated
vendored
Normal file
@ -0,0 +1,192 @@
|
||||
<!DOCTYPE html><html><head>
|
||||
<meta charset="utf-8">
|
||||
<title>npm-shrinkwrap.json</title>
|
||||
<style>
|
||||
body {
|
||||
background-color: #ffffff;
|
||||
color: #24292e;
|
||||
|
||||
margin: 0;
|
||||
|
||||
line-height: 1.5;
|
||||
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
|
||||
}
|
||||
#rainbar {
|
||||
height: 10px;
|
||||
background-image: linear-gradient(139deg, #fb8817, #ff4b01, #c12127, #e02aff);
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #0366d6;
|
||||
}
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
pre {
|
||||
margin: 1em 0px;
|
||||
padding: 1em;
|
||||
border: solid 1px #e1e4e8;
|
||||
border-radius: 6px;
|
||||
|
||||
display: block;
|
||||
overflow: auto;
|
||||
|
||||
white-space: pre;
|
||||
|
||||
background-color: #f6f8fa;
|
||||
color: #393a34;
|
||||
}
|
||||
code {
|
||||
font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace;
|
||||
font-size: 85%;
|
||||
padding: 0.2em 0.4em;
|
||||
background-color: #f6f8fa;
|
||||
color: #393a34;
|
||||
}
|
||||
pre > code {
|
||||
padding: 0;
|
||||
background-color: inherit;
|
||||
color: inherit;
|
||||
}
|
||||
h1, h2, h3 {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
#logobar {
|
||||
background-color: #333333;
|
||||
margin: 0 auto;
|
||||
padding: 1em 4em;
|
||||
}
|
||||
#logobar .logo {
|
||||
float: left;
|
||||
}
|
||||
#logobar .title {
|
||||
font-weight: 600;
|
||||
color: #dddddd;
|
||||
float: left;
|
||||
margin: 5px 0 0 1em;
|
||||
}
|
||||
#logobar:after {
|
||||
content: "";
|
||||
display: block;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
#content {
|
||||
margin: 0 auto;
|
||||
padding: 0 4em;
|
||||
}
|
||||
|
||||
#table_of_contents > h2 {
|
||||
font-size: 1.17em;
|
||||
}
|
||||
#table_of_contents ul:first-child {
|
||||
border: solid 1px #e1e4e8;
|
||||
border-radius: 6px;
|
||||
padding: 1em;
|
||||
background-color: #f6f8fa;
|
||||
color: #393a34;
|
||||
}
|
||||
#table_of_contents ul {
|
||||
list-style-type: none;
|
||||
padding-left: 1.5em;
|
||||
}
|
||||
#table_of_contents li {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
#table_of_contents li a {
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
header.title {
|
||||
border-bottom: solid 1px #e1e4e8;
|
||||
}
|
||||
header.title > h1 {
|
||||
margin-bottom: 0.25em;
|
||||
}
|
||||
header.title > .description {
|
||||
display: block;
|
||||
margin-bottom: 0.5em;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
header.title .version {
|
||||
font-size: 0.8em;
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
footer#edit {
|
||||
border-top: solid 1px #e1e4e8;
|
||||
margin: 3em 0 4em 0;
|
||||
padding-top: 2em;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="banner">
|
||||
<div id="rainbar"></div>
|
||||
<div id="logobar">
|
||||
<svg class="logo" role="img" height="32" width="32" viewBox="0 0 700 700">
|
||||
<polygon fill="#cb0000" points="0,700 700,700 700,0 0,0"></polygon>
|
||||
<polygon fill="#ffffff" points="150,550 350,550 350,250 450,250 450,550 550,550 550,150 150,150"></polygon>
|
||||
</svg>
|
||||
<div class="title">
|
||||
npm command-line interface
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section id="content">
|
||||
<header class="title">
|
||||
<h1 id="----npm-shrinkwrapjson----1092">
|
||||
<span>npm-shrinkwrap.json</span>
|
||||
<span class="version">@10.9.2</span>
|
||||
</h1>
|
||||
<span class="description">A publishable lockfile</span>
|
||||
</header>
|
||||
|
||||
<section id="table_of_contents">
|
||||
<h2 id="table-of-contents">Table of contents</h2>
|
||||
<div id="_table_of_contents"><ul><li><a href="#description">Description</a></li><li><a href="#see-also">See also</a></li></ul></div>
|
||||
</section>
|
||||
|
||||
<div id="_content"><h3 id="description">Description</h3>
|
||||
<p><code>npm-shrinkwrap.json</code> is a file created by <a href="../commands/npm-shrinkwrap.html"><code>npm shrinkwrap</code></a>. It is identical to
|
||||
<code>package-lock.json</code>, with one major caveat: Unlike <code>package-lock.json</code>,
|
||||
<code>npm-shrinkwrap.json</code> may be included when publishing a package.</p>
|
||||
<p>The recommended use-case for <code>npm-shrinkwrap.json</code> is applications deployed
|
||||
through the publishing process on the registry: for example, daemons and
|
||||
command-line tools intended as global installs or <code>devDependencies</code>. It's
|
||||
strongly discouraged for library authors to publish this file, since that
|
||||
would prevent end users from having control over transitive dependency
|
||||
updates.</p>
|
||||
<p>If both <code>package-lock.json</code> and <code>npm-shrinkwrap.json</code> are present in a
|
||||
package root, <code>npm-shrinkwrap.json</code> will be preferred over the
|
||||
<code>package-lock.json</code> file.</p>
|
||||
<p>For full details and description of the <code>npm-shrinkwrap.json</code> file format,
|
||||
refer to the manual page for
|
||||
<a href="../configuring-npm/package-lock-json.html">package-lock.json</a>.</p>
|
||||
<h3 id="see-also">See also</h3>
|
||||
<ul>
|
||||
<li><a href="../commands/npm-shrinkwrap.html">npm shrinkwrap</a></li>
|
||||
<li><a href="../configuring-npm/package-lock-json.html">package-lock.json</a></li>
|
||||
<li><a href="../configuring-npm/package-json.html">package.json</a></li>
|
||||
<li><a href="../commands/npm-install.html">npm install</a></li>
|
||||
</ul></div>
|
||||
|
||||
<footer id="edit">
|
||||
<a href="https://github.com/npm/cli/edit/latest/docs/content/configuring-npm/npm-shrinkwrap-json.md">
|
||||
<svg role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentcolor" style="vertical-align: text-bottom; margin-right: 0.3em;">
|
||||
<path fill-rule="evenodd" d="M11.013 1.427a1.75 1.75 0 012.474 0l1.086 1.086a1.75 1.75 0 010 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.251.93a.75.75 0 01-.927-.928l.929-3.25a1.75 1.75 0 01.445-.758l8.61-8.61zm1.414 1.06a.25.25 0 00-.354 0L10.811 3.75l1.439 1.44 1.263-1.263a.25.25 0 000-.354l-1.086-1.086zM11.189 6.25L9.75 4.81l-6.286 6.287a.25.25 0 00-.064.108l-.558 1.953 1.953-.558a.249.249 0 00.108-.064l6.286-6.286z"></path>
|
||||
</svg>
|
||||
Edit this page on GitHub
|
||||
</a>
|
||||
</footer>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
</body></html>
|
272
Dependencies/NodeJS/node_modules/npm/docs/output/configuring-npm/npmrc.html
generated
vendored
Normal file
272
Dependencies/NodeJS/node_modules/npm/docs/output/configuring-npm/npmrc.html
generated
vendored
Normal file
@ -0,0 +1,272 @@
|
||||
<!DOCTYPE html><html><head>
|
||||
<meta charset="utf-8">
|
||||
<title>npmrc</title>
|
||||
<style>
|
||||
body {
|
||||
background-color: #ffffff;
|
||||
color: #24292e;
|
||||
|
||||
margin: 0;
|
||||
|
||||
line-height: 1.5;
|
||||
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
|
||||
}
|
||||
#rainbar {
|
||||
height: 10px;
|
||||
background-image: linear-gradient(139deg, #fb8817, #ff4b01, #c12127, #e02aff);
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #0366d6;
|
||||
}
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
pre {
|
||||
margin: 1em 0px;
|
||||
padding: 1em;
|
||||
border: solid 1px #e1e4e8;
|
||||
border-radius: 6px;
|
||||
|
||||
display: block;
|
||||
overflow: auto;
|
||||
|
||||
white-space: pre;
|
||||
|
||||
background-color: #f6f8fa;
|
||||
color: #393a34;
|
||||
}
|
||||
code {
|
||||
font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace;
|
||||
font-size: 85%;
|
||||
padding: 0.2em 0.4em;
|
||||
background-color: #f6f8fa;
|
||||
color: #393a34;
|
||||
}
|
||||
pre > code {
|
||||
padding: 0;
|
||||
background-color: inherit;
|
||||
color: inherit;
|
||||
}
|
||||
h1, h2, h3 {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
#logobar {
|
||||
background-color: #333333;
|
||||
margin: 0 auto;
|
||||
padding: 1em 4em;
|
||||
}
|
||||
#logobar .logo {
|
||||
float: left;
|
||||
}
|
||||
#logobar .title {
|
||||
font-weight: 600;
|
||||
color: #dddddd;
|
||||
float: left;
|
||||
margin: 5px 0 0 1em;
|
||||
}
|
||||
#logobar:after {
|
||||
content: "";
|
||||
display: block;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
#content {
|
||||
margin: 0 auto;
|
||||
padding: 0 4em;
|
||||
}
|
||||
|
||||
#table_of_contents > h2 {
|
||||
font-size: 1.17em;
|
||||
}
|
||||
#table_of_contents ul:first-child {
|
||||
border: solid 1px #e1e4e8;
|
||||
border-radius: 6px;
|
||||
padding: 1em;
|
||||
background-color: #f6f8fa;
|
||||
color: #393a34;
|
||||
}
|
||||
#table_of_contents ul {
|
||||
list-style-type: none;
|
||||
padding-left: 1.5em;
|
||||
}
|
||||
#table_of_contents li {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
#table_of_contents li a {
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
header.title {
|
||||
border-bottom: solid 1px #e1e4e8;
|
||||
}
|
||||
header.title > h1 {
|
||||
margin-bottom: 0.25em;
|
||||
}
|
||||
header.title > .description {
|
||||
display: block;
|
||||
margin-bottom: 0.5em;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
header.title .version {
|
||||
font-size: 0.8em;
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
footer#edit {
|
||||
border-top: solid 1px #e1e4e8;
|
||||
margin: 3em 0 4em 0;
|
||||
padding-top: 2em;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="banner">
|
||||
<div id="rainbar"></div>
|
||||
<div id="logobar">
|
||||
<svg class="logo" role="img" height="32" width="32" viewBox="0 0 700 700">
|
||||
<polygon fill="#cb0000" points="0,700 700,700 700,0 0,0"></polygon>
|
||||
<polygon fill="#ffffff" points="150,550 350,550 350,250 450,250 450,550 550,550 550,150 150,150"></polygon>
|
||||
</svg>
|
||||
<div class="title">
|
||||
npm command-line interface
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section id="content">
|
||||
<header class="title">
|
||||
<h1 id="----npmrc----1092">
|
||||
<span>npmrc</span>
|
||||
<span class="version">@10.9.2</span>
|
||||
</h1>
|
||||
<span class="description">The npm config files</span>
|
||||
</header>
|
||||
|
||||
<section id="table_of_contents">
|
||||
<h2 id="table-of-contents">Table of contents</h2>
|
||||
<div id="_table_of_contents"><ul><li><a href="#description">Description</a></li><li><a href="#files">Files</a></li><ul><li><a href="#comments">Comments</a></li><li><a href="#per-project-config-file">Per-project config file</a></li><li><a href="#per-user-config-file">Per-user config file</a></li><li><a href="#global-config-file">Global config file</a></li><li><a href="#built-in-config-file">Built-in config file</a></li></ul><li><a href="#auth-related-configuration">Auth related configuration</a></li><li><a href="#see-also">See also</a></li></ul></div>
|
||||
</section>
|
||||
|
||||
<div id="_content"><h3 id="description">Description</h3>
|
||||
<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="../using-npm/config.html">config</a>.</p>
|
||||
<h3 id="files">Files</h3>
|
||||
<p>The four relevant files are:</p>
|
||||
<ul>
|
||||
<li>per-project config file (<code>/path/to/my/project/.npmrc</code>)</li>
|
||||
<li>per-user config file (<code>~/.npmrc</code>)</li>
|
||||
<li>global config file (<code>$PREFIX/etc/npmrc</code>)</li>
|
||||
<li>npm builtin config file (<code>/path/to/npm/npmrc</code>)</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 class="language-bash">cache = ${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 "[]" after the key name. For example:</p>
|
||||
<pre><code class="language-bash">key[] = "first value"
|
||||
key[] = "second value"
|
||||
</code></pre>
|
||||
<h4 id="comments">Comments</h4>
|
||||
<p>Lines in <code>.npmrc</code> files are interpreted as comments when they begin with a
|
||||
<code>;</code> or <code>#</code> character. <code>.npmrc</code> files are parsed by
|
||||
<a href="https://github.com/npm/ini">npm/ini</a>, which specifies this comment syntax.</p>
|
||||
<p>For example:</p>
|
||||
<pre><code class="language-bash"># last modified: 01 Jan 2016
|
||||
; Set a new registry for a scoped package
|
||||
@myscope:registry=https://mycustomregistry.example.org
|
||||
</code></pre>
|
||||
<h4 id="per-project-config-file">Per-project config file</h4>
|
||||
<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're running
|
||||
npm in. It has no effect when your module is published. For example, you
|
||||
can'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>
|
||||
<h4 id="per-user-config-file">Per-user config file</h4>
|
||||
<p><code>$HOME/.npmrc</code> (or the <code>userconfig</code> param, if set in the environment or on
|
||||
the command line)</p>
|
||||
<h4 id="global-config-file">Global config file</h4>
|
||||
<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>
|
||||
<h4 id="built-in-config-file">Built-in config file</h4>
|
||||
<p><code>path/to/npm/itself/npmrc</code></p>
|
||||
<p>This is an unchangeable "builtin" 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>
|
||||
<h3 id="auth-related-configuration">Auth related configuration</h3>
|
||||
<p>The settings <code>_auth</code>, <code>_authToken</code>, <code>username</code> and <code>_password</code> must all be
|
||||
scoped to a specific registry. This ensures that <code>npm</code> will never send
|
||||
credentials to the wrong host.</p>
|
||||
<p>The full list is:</p>
|
||||
<ul>
|
||||
<li><code>_auth</code> (base64 authentication string)</li>
|
||||
<li><code>_authToken</code> (authentication token)</li>
|
||||
<li><code>username</code></li>
|
||||
<li><code>_password</code></li>
|
||||
<li><code>email</code></li>
|
||||
<li><code>certfile</code> (path to certificate file)</li>
|
||||
<li><code>keyfile</code> (path to key file)</li>
|
||||
</ul>
|
||||
<p>In order to scope these values, they must be prefixed by a URI fragment.
|
||||
If the credential is meant for any request to a registry on a single host,
|
||||
the scope may look like <code>//registry.npmjs.org/:</code>. If it must be scoped to a
|
||||
specific path on the host that path may also be provided, such as
|
||||
<code>//my-custom-registry.org/unique/path:</code>.</p>
|
||||
<pre><code>; bad config
|
||||
_authToken=MYTOKEN
|
||||
|
||||
; good config
|
||||
@myorg:registry=https://somewhere-else.com/myorg
|
||||
@another:registry=https://somewhere-else.com/another
|
||||
//registry.npmjs.org/:_authToken=MYTOKEN
|
||||
|
||||
; would apply to both @myorg and @another
|
||||
//somewhere-else.com/:_authToken=MYTOKEN
|
||||
|
||||
; would apply only to @myorg
|
||||
//somewhere-else.com/myorg/:_authToken=MYTOKEN1
|
||||
|
||||
; would apply only to @another
|
||||
//somewhere-else.com/another/:_authToken=MYTOKEN2
|
||||
</code></pre>
|
||||
<h3 id="see-also">See also</h3>
|
||||
<ul>
|
||||
<li><a href="../configuring-npm/folders.html">npm folders</a></li>
|
||||
<li><a href="../commands/npm-config.html">npm config</a></li>
|
||||
<li><a href="../using-npm/config.html">config</a></li>
|
||||
<li><a href="../configuring-npm/package-json.html">package.json</a></li>
|
||||
<li><a href="../commands/npm.html">npm</a></li>
|
||||
</ul></div>
|
||||
|
||||
<footer id="edit">
|
||||
<a href="https://github.com/npm/cli/edit/latest/docs/content/configuring-npm/npmrc.md">
|
||||
<svg role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentcolor" style="vertical-align: text-bottom; margin-right: 0.3em;">
|
||||
<path fill-rule="evenodd" d="M11.013 1.427a1.75 1.75 0 012.474 0l1.086 1.086a1.75 1.75 0 010 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.251.93a.75.75 0 01-.927-.928l.929-3.25a1.75 1.75 0 01.445-.758l8.61-8.61zm1.414 1.06a.25.25 0 00-.354 0L10.811 3.75l1.439 1.44 1.263-1.263a.25.25 0 000-.354l-1.086-1.086zM11.189 6.25L9.75 4.81l-6.286 6.287a.25.25 0 00-.064.108l-.558 1.953 1.953-.558a.249.249 0 00.108-.064l6.286-6.286z"></path>
|
||||
</svg>
|
||||
Edit this page on GitHub
|
||||
</a>
|
||||
</footer>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
</body></html>
|
1111
Dependencies/NodeJS/node_modules/npm/docs/output/configuring-npm/package-json.html
generated
vendored
Normal file
1111
Dependencies/NodeJS/node_modules/npm/docs/output/configuring-npm/package-json.html
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
399
Dependencies/NodeJS/node_modules/npm/docs/output/configuring-npm/package-lock-json.html
generated
vendored
Normal file
399
Dependencies/NodeJS/node_modules/npm/docs/output/configuring-npm/package-lock-json.html
generated
vendored
Normal file
@ -0,0 +1,399 @@
|
||||
<!DOCTYPE html><html><head>
|
||||
<meta charset="utf-8">
|
||||
<title>package-lock.json</title>
|
||||
<style>
|
||||
body {
|
||||
background-color: #ffffff;
|
||||
color: #24292e;
|
||||
|
||||
margin: 0;
|
||||
|
||||
line-height: 1.5;
|
||||
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
|
||||
}
|
||||
#rainbar {
|
||||
height: 10px;
|
||||
background-image: linear-gradient(139deg, #fb8817, #ff4b01, #c12127, #e02aff);
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #0366d6;
|
||||
}
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
pre {
|
||||
margin: 1em 0px;
|
||||
padding: 1em;
|
||||
border: solid 1px #e1e4e8;
|
||||
border-radius: 6px;
|
||||
|
||||
display: block;
|
||||
overflow: auto;
|
||||
|
||||
white-space: pre;
|
||||
|
||||
background-color: #f6f8fa;
|
||||
color: #393a34;
|
||||
}
|
||||
code {
|
||||
font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace;
|
||||
font-size: 85%;
|
||||
padding: 0.2em 0.4em;
|
||||
background-color: #f6f8fa;
|
||||
color: #393a34;
|
||||
}
|
||||
pre > code {
|
||||
padding: 0;
|
||||
background-color: inherit;
|
||||
color: inherit;
|
||||
}
|
||||
h1, h2, h3 {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
#logobar {
|
||||
background-color: #333333;
|
||||
margin: 0 auto;
|
||||
padding: 1em 4em;
|
||||
}
|
||||
#logobar .logo {
|
||||
float: left;
|
||||
}
|
||||
#logobar .title {
|
||||
font-weight: 600;
|
||||
color: #dddddd;
|
||||
float: left;
|
||||
margin: 5px 0 0 1em;
|
||||
}
|
||||
#logobar:after {
|
||||
content: "";
|
||||
display: block;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
#content {
|
||||
margin: 0 auto;
|
||||
padding: 0 4em;
|
||||
}
|
||||
|
||||
#table_of_contents > h2 {
|
||||
font-size: 1.17em;
|
||||
}
|
||||
#table_of_contents ul:first-child {
|
||||
border: solid 1px #e1e4e8;
|
||||
border-radius: 6px;
|
||||
padding: 1em;
|
||||
background-color: #f6f8fa;
|
||||
color: #393a34;
|
||||
}
|
||||
#table_of_contents ul {
|
||||
list-style-type: none;
|
||||
padding-left: 1.5em;
|
||||
}
|
||||
#table_of_contents li {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
#table_of_contents li a {
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
header.title {
|
||||
border-bottom: solid 1px #e1e4e8;
|
||||
}
|
||||
header.title > h1 {
|
||||
margin-bottom: 0.25em;
|
||||
}
|
||||
header.title > .description {
|
||||
display: block;
|
||||
margin-bottom: 0.5em;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
header.title .version {
|
||||
font-size: 0.8em;
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
footer#edit {
|
||||
border-top: solid 1px #e1e4e8;
|
||||
margin: 3em 0 4em 0;
|
||||
padding-top: 2em;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="banner">
|
||||
<div id="rainbar"></div>
|
||||
<div id="logobar">
|
||||
<svg class="logo" role="img" height="32" width="32" viewBox="0 0 700 700">
|
||||
<polygon fill="#cb0000" points="0,700 700,700 700,0 0,0"></polygon>
|
||||
<polygon fill="#ffffff" points="150,550 350,550 350,250 450,250 450,550 550,550 550,150 150,150"></polygon>
|
||||
</svg>
|
||||
<div class="title">
|
||||
npm command-line interface
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section id="content">
|
||||
<header class="title">
|
||||
<h1 id="----package-lockjson----1092">
|
||||
<span>package-lock.json</span>
|
||||
<span class="version">@10.9.2</span>
|
||||
</h1>
|
||||
<span class="description">A manifestation of the manifest</span>
|
||||
</header>
|
||||
|
||||
<section id="table_of_contents">
|
||||
<h2 id="table-of-contents">Table of contents</h2>
|
||||
<div id="_table_of_contents"><ul><li><a href="#description">Description</a></li><li><a href="#package-lockjson-vs-npm-shrinkwrapjson"><code>package-lock.json</code> vs <code>npm-shrinkwrap.json</code></a></li><li><a href="#hidden-lockfiles">Hidden Lockfiles</a></li><li><a href="#handling-old-lockfiles">Handling Old Lockfiles</a></li><li><a href="#file-format">File Format</a></li><ul><li><a href="#name"><code>name</code></a></li><li><a href="#version"><code>version</code></a></li><li><a href="#lockfileversion"><code>lockfileVersion</code></a></li><li><a href="#packages"><code>packages</code></a></li><li><a href="#dependencies">dependencies</a></li></ul><li><a href="#see-also">See also</a></li></ul></div>
|
||||
</section>
|
||||
|
||||
<div id="_content"><h3 id="description">Description</h3>
|
||||
<p><code>package-lock.json</code> is automatically generated for any operations where npm
|
||||
modifies either the <code>node_modules</code> tree, or <code>package.json</code>. It describes the
|
||||
exact tree that was generated, such that subsequent installs are able to
|
||||
generate identical trees, regardless of intermediate dependency updates.</p>
|
||||
<p>This file is intended to be committed into source repositories, and serves
|
||||
various purposes:</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p>Describe a single representation of a dependency tree such that
|
||||
teammates, deployments, and continuous integration are guaranteed to
|
||||
install exactly the same dependencies.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Provide a facility for users to "time-travel" to previous states of
|
||||
<code>node_modules</code> without having to commit the directory itself.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Facilitate greater visibility of tree changes through readable source
|
||||
control diffs.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Optimize the installation process by allowing npm to skip repeated
|
||||
metadata resolutions for previously-installed packages.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>As of npm v7, lockfiles include enough information to gain a complete
|
||||
picture of the package tree, reducing the need to read <code>package.json</code>
|
||||
files, and allowing for significant performance improvements.</p>
|
||||
</li>
|
||||
</ul>
|
||||
<p>When <code>npm</code> creates or updates <code>package-lock.json</code>, it will infer line endings and indentation from <code>package.json</code> so that the formatting of both files matches.</p>
|
||||
<h3 id="package-lockjson-vs-npm-shrinkwrapjson"><code>package-lock.json</code> vs <code>npm-shrinkwrap.json</code></h3>
|
||||
<p>Both of these files have the same format, and perform similar functions in
|
||||
the root of a project.</p>
|
||||
<p>The difference is that <code>package-lock.json</code> cannot be published, and it will
|
||||
be ignored if found in any place other than the root project.</p>
|
||||
<p>In contrast, <a href="../configuring-npm/npm-shrinkwrap-json.html">npm-shrinkwrap.json</a> allows
|
||||
publication, and defines the dependency tree from the point encountered.
|
||||
This is not recommended unless deploying a CLI tool or otherwise using the
|
||||
publication process for producing production packages.</p>
|
||||
<p>If both <code>package-lock.json</code> and <code>npm-shrinkwrap.json</code> are present in the
|
||||
root of a project, <code>npm-shrinkwrap.json</code> will take precedence and
|
||||
<code>package-lock.json</code> will be ignored.</p>
|
||||
<h3 id="hidden-lockfiles">Hidden Lockfiles</h3>
|
||||
<p>In order to avoid processing the <code>node_modules</code> folder repeatedly, npm as
|
||||
of v7 uses a "hidden" lockfile present in
|
||||
<code>node_modules/.package-lock.json</code>. This contains information about the
|
||||
tree, and is used in lieu of reading the entire <code>node_modules</code> hierarchy
|
||||
provided that the following conditions are met:</p>
|
||||
<ul>
|
||||
<li>All package folders it references exist in the <code>node_modules</code> hierarchy.</li>
|
||||
<li>No package folders exist in the <code>node_modules</code> hierarchy that are not
|
||||
listed in the lockfile.</li>
|
||||
<li>The modified time of the file is at least as recent as all of the package
|
||||
folders it references.</li>
|
||||
</ul>
|
||||
<p>That is, the hidden lockfile will only be relevant if it was created as
|
||||
part of the most recent update to the package tree. If another CLI mutates
|
||||
the tree in any way, this will be detected, and the hidden lockfile will be
|
||||
ignored.</p>
|
||||
<p>Note that it <em>is</em> possible to manually change the <em>contents</em> of a package
|
||||
in such a way that the modified time of the package folder is unaffected.
|
||||
For example, if you add a file to <code>node_modules/foo/lib/bar.js</code>, then the
|
||||
modified time on <code>node_modules/foo</code> will not reflect this change. If you
|
||||
are manually editing files in <code>node_modules</code>, it is generally best to
|
||||
delete the file at <code>node_modules/.package-lock.json</code>.</p>
|
||||
<p>As the hidden lockfile is ignored by older npm versions, it does not
|
||||
contain the backwards compatibility affordances present in "normal"
|
||||
lockfiles. That is, it is <code>lockfileVersion: 3</code>, rather than
|
||||
<code>lockfileVersion: 2</code>.</p>
|
||||
<h3 id="handling-old-lockfiles">Handling Old Lockfiles</h3>
|
||||
<p>When npm detects a lockfile from npm v6 or before during the package
|
||||
installation process, it is automatically updated to fetch missing
|
||||
information from either the <code>node_modules</code> tree or (in the case of empty
|
||||
<code>node_modules</code> trees or very old lockfile formats) the npm registry.</p>
|
||||
<h3 id="file-format">File Format</h3>
|
||||
<h4 id="name"><code>name</code></h4>
|
||||
<p>The name of the package this is a package-lock for. This will match what's
|
||||
in <code>package.json</code>.</p>
|
||||
<h4 id="version"><code>version</code></h4>
|
||||
<p>The version of the package this is a package-lock for. This will match
|
||||
what's in <code>package.json</code>.</p>
|
||||
<h4 id="lockfileversion"><code>lockfileVersion</code></h4>
|
||||
<p>An integer version, starting at <code>1</code> with the version number of this
|
||||
document whose semantics were used when generating this
|
||||
<code>package-lock.json</code>.</p>
|
||||
<p>Note that the file format changed significantly in npm v7 to track
|
||||
information that would have otherwise required looking in <code>node_modules</code> or
|
||||
the npm registry. Lockfiles generated by npm v7 will contain
|
||||
<code>lockfileVersion: 2</code>.</p>
|
||||
<ul>
|
||||
<li>No version provided: an "ancient" shrinkwrap file from a version of npm
|
||||
prior to npm v5.</li>
|
||||
<li><code>1</code>: The lockfile version used by npm v5 and v6.</li>
|
||||
<li><code>2</code>: The lockfile version used by npm v7 and v8. Backwards compatible to v1
|
||||
lockfiles.</li>
|
||||
<li><code>3</code>: The lockfile version used by npm v9 and above. Backwards compatible to npm v7.</li>
|
||||
</ul>
|
||||
<p>npm will always attempt to get whatever data it can out of a lockfile, even
|
||||
if it is not a version that it was designed to support.</p>
|
||||
<h4 id="packages"><code>packages</code></h4>
|
||||
<p>This is an object that maps package locations to an object containing the
|
||||
information about that package.</p>
|
||||
<p>The root project is typically listed with a key of <code>""</code>, and all other
|
||||
packages are listed with their relative paths from the root project folder.</p>
|
||||
<p>Package descriptors have the following fields:</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p>version: The version found in <code>package.json</code></p>
|
||||
</li>
|
||||
<li>
|
||||
<p>resolved: The place where the package was actually resolved from. In
|
||||
the case of packages fetched from the registry, this will be a url to a
|
||||
tarball. In the case of git dependencies, this will be the full git url
|
||||
with commit sha. In the case of link dependencies, this will be the
|
||||
location of the link target. <code>registry.npmjs.org</code> is a magic value meaning
|
||||
"the currently configured registry".</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>integrity: A <code>sha512</code> or <code>sha1</code> <a href="https://w3c.github.io/webappsec/specs/subresourceintegrity/">Standard Subresource
|
||||
Integrity</a>
|
||||
string for the artifact that was unpacked in this location.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>link: A flag to indicate that this is a symbolic link. If this is
|
||||
present, no other fields are specified, since the link target will also
|
||||
be included in the lockfile.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>dev, optional, devOptional: If the package is strictly part of the
|
||||
<code>devDependencies</code> tree, then <code>dev</code> will be true. If it is strictly part
|
||||
of the <code>optionalDependencies</code> tree, then <code>optional</code> will be set. If it
|
||||
is both a <code>dev</code> dependency <em>and</em> an <code>optional</code> dependency of a non-dev
|
||||
dependency, then <code>devOptional</code> will be set. (An <code>optional</code> dependency of
|
||||
a <code>dev</code> dependency will have both <code>dev</code> and <code>optional</code> set.)</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>inBundle: A flag to indicate that the package is a bundled dependency.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>hasInstallScript: A flag to indicate that the package has a <code>preinstall</code>,
|
||||
<code>install</code>, or <code>postinstall</code> script.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>hasShrinkwrap: A flag to indicate that the package has an
|
||||
<code>npm-shrinkwrap.json</code> file.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>bin, license, engines, dependencies, optionalDependencies: fields from
|
||||
<code>package.json</code></p>
|
||||
</li>
|
||||
</ul>
|
||||
<h4 id="dependencies">dependencies</h4>
|
||||
<p>Legacy data for supporting versions of npm that use <code>lockfileVersion: 1</code>.
|
||||
This is a mapping of package names to dependency objects. Because the
|
||||
object structure is strictly hierarchical, symbolic link dependencies are
|
||||
somewhat challenging to represent in some cases.</p>
|
||||
<p>npm v7 ignores this section entirely if a <code>packages</code> section is present,
|
||||
but does keep it up to date in order to support switching between npm v6
|
||||
and npm v7.</p>
|
||||
<p>Dependency objects have the following fields:</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p>version: a specifier that varies depending on the nature of the package,
|
||||
and is usable in fetching a new copy of it.</p>
|
||||
<ul>
|
||||
<li>bundled dependencies: Regardless of source, this is a version number
|
||||
that is purely for informational purposes.</li>
|
||||
<li>registry sources: This is a version number. (eg, <code>1.2.3</code>)</li>
|
||||
<li>git sources: This is a git specifier with resolved committish. (eg,
|
||||
<code>git+https://example.com/foo/bar#115311855adb0789a0466714ed48a1499ffea97e</code>)</li>
|
||||
<li>http tarball sources: This is the URL of the tarball. (eg,
|
||||
<code>https://example.com/example-1.3.0.tgz</code>)</li>
|
||||
<li>local tarball sources: This is the file URL of the tarball. (eg
|
||||
<code>file:///opt/storage/example-1.3.0.tgz</code>)</li>
|
||||
<li>local link sources: This is the file URL of the link. (eg
|
||||
<code>file:libs/our-module</code>)</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<p>integrity: A <code>sha512</code> or <code>sha1</code> <a href="https://w3c.github.io/webappsec/specs/subresourceintegrity/">Standard Subresource
|
||||
Integrity</a>
|
||||
string for the artifact that was unpacked in this location. For git
|
||||
dependencies, this is the commit sha.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>resolved: For registry sources this is path of the tarball relative to
|
||||
the registry URL. If the tarball URL isn't on the same server as the
|
||||
registry URL then this is a complete URL. <code>registry.npmjs.org</code> is a magic
|
||||
value meaning "the currently configured registry".</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>bundled: If true, this is the bundled dependency and will be installed
|
||||
by the parent module. When installing, this module will be extracted
|
||||
from the parent module during the extract phase, not installed as a
|
||||
separate dependency.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>dev: If true then this dependency is either a development dependency ONLY
|
||||
of the top level module or a transitive dependency of one. This is false
|
||||
for dependencies that are both a development dependency of the top level
|
||||
and a transitive dependency of a non-development dependency of the top
|
||||
level.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>optional: If true then this dependency is either an optional dependency
|
||||
ONLY of the top level module or a transitive dependency of one. This is
|
||||
false for dependencies that are both an optional dependency of the top
|
||||
level and a transitive dependency of a non-optional dependency of the top
|
||||
level.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>requires: This is a mapping of module name to version. This is a list of
|
||||
everything this module requires, regardless of where it will be
|
||||
installed. The version should match via normal matching rules a
|
||||
dependency either in our <code>dependencies</code> or in a level higher than us.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>dependencies: The dependencies of this dependency, exactly as at the top
|
||||
level.</p>
|
||||
</li>
|
||||
</ul>
|
||||
<h3 id="see-also">See also</h3>
|
||||
<ul>
|
||||
<li><a href="../commands/npm-shrinkwrap.html">npm shrinkwrap</a></li>
|
||||
<li><a href="../configuring-npm/npm-shrinkwrap-json.html">npm-shrinkwrap.json</a></li>
|
||||
<li><a href="../configuring-npm/package-json.html">package.json</a></li>
|
||||
<li><a href="../commands/npm-install.html">npm install</a></li>
|
||||
</ul></div>
|
||||
|
||||
<footer id="edit">
|
||||
<a href="https://github.com/npm/cli/edit/latest/docs/content/configuring-npm/package-lock-json.md">
|
||||
<svg role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentcolor" style="vertical-align: text-bottom; margin-right: 0.3em;">
|
||||
<path fill-rule="evenodd" d="M11.013 1.427a1.75 1.75 0 012.474 0l1.086 1.086a1.75 1.75 0 010 2.474l-8.61 8.61c-.21.21-.47.364-.756.445l-3.251.93a.75.75 0 01-.927-.928l.929-3.25a1.75 1.75 0 01.445-.758l8.61-8.61zm1.414 1.06a.25.25 0 00-.354 0L10.811 3.75l1.439 1.44 1.263-1.263a.25.25 0 000-.354l-1.086-1.086zM11.189 6.25L9.75 4.81l-6.286 6.287a.25.25 0 00-.064.108l-.558 1.953 1.953-.558a.249.249 0 00.108-.064l6.286-6.286z"></path>
|
||||
</svg>
|
||||
Edit this page on GitHub
|
||||
</a>
|
||||
</footer>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
</body></html>
|
Reference in New Issue
Block a user