1<!DOCTYPE html><html><head> 2<meta charset="utf-8"> 3<title>package-spec</title> 4<style> 5body { 6 background-color: #ffffff; 7 color: #24292e; 8 9 margin: 0; 10 11 line-height: 1.5; 12 13 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; 14} 15#rainbar { 16 height: 10px; 17 background-image: linear-gradient(139deg, #fb8817, #ff4b01, #c12127, #e02aff); 18} 19 20a { 21 text-decoration: none; 22 color: #0366d6; 23} 24a:hover { 25 text-decoration: underline; 26} 27 28pre { 29 margin: 1em 0px; 30 padding: 1em; 31 border: solid 1px #e1e4e8; 32 border-radius: 6px; 33 34 display: block; 35 overflow: auto; 36 37 white-space: pre; 38 39 background-color: #f6f8fa; 40 color: #393a34; 41} 42code { 43 font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, Courier, monospace; 44 font-size: 85%; 45 padding: 0.2em 0.4em; 46 background-color: #f6f8fa; 47 color: #393a34; 48} 49pre > code { 50 padding: 0; 51 background-color: inherit; 52 color: inherit; 53} 54h1, h2, h3 { 55 font-weight: 600; 56} 57 58#logobar { 59 background-color: #333333; 60 margin: 0 auto; 61 padding: 1em 4em; 62} 63#logobar .logo { 64 float: left; 65} 66#logobar .title { 67 font-weight: 600; 68 color: #dddddd; 69 float: left; 70 margin: 5px 0 0 1em; 71} 72#logobar:after { 73 content: ""; 74 display: block; 75 clear: both; 76} 77 78#content { 79 margin: 0 auto; 80 padding: 0 4em; 81} 82 83#table_of_contents > h2 { 84 font-size: 1.17em; 85} 86#table_of_contents ul:first-child { 87 border: solid 1px #e1e4e8; 88 border-radius: 6px; 89 padding: 1em; 90 background-color: #f6f8fa; 91 color: #393a34; 92} 93#table_of_contents ul { 94 list-style-type: none; 95 padding-left: 1.5em; 96} 97#table_of_contents li { 98 font-size: 0.9em; 99} 100#table_of_contents li a { 101 color: #000000; 102} 103 104header.title { 105 border-bottom: solid 1px #e1e4e8; 106} 107header.title > h1 { 108 margin-bottom: 0.25em; 109} 110header.title > .description { 111 display: block; 112 margin-bottom: 0.5em; 113 line-height: 1; 114} 115 116footer#edit { 117 border-top: solid 1px #e1e4e8; 118 margin: 3em 0 4em 0; 119 padding-top: 2em; 120} 121</style> 122</head> 123<body> 124<div id="banner"> 125<div id="rainbar"></div> 126<div id="logobar"> 127<svg class="logo" role="img" height="32" width="32" viewBox="0 0 700 700"> 128<polygon fill="#cb0000" points="0,700 700,700 700,0 0,0"></polygon> 129<polygon fill="#ffffff" points="150,550 350,550 350,250 450,250 450,550 550,550 550,150 150,150"></polygon> 130</svg> 131<div class="title"> 132npm command-line interface 133</div> 134</div> 135</div> 136 137<section id="content"> 138<header class="title"> 139<h1 id="package-spec">package-spec</h1> 140<span class="description">Package name specifier</span> 141</header> 142 143<section id="table_of_contents"> 144<h2 id="table-of-contents">Table of contents</h2> 145<div id="_table_of_contents"><ul><li><a href="#description">Description</a></li><li><a href="#package-name">Package name</a></li><li><a href="#aliases">Aliases</a></li><li><a href="#folders">Folders</a></li><li><a href="#tarballs">Tarballs</a></li><li><a href="#git-urls">git urls</a></li><li><a href="#see-also">See also</a></li></ul></div> 146</section> 147 148<div id="_content"><h3 id="description">Description</h3> 149<p>Commands like <code>npm install</code> and the dependency sections in the 150<code>package.json</code> use a package name specifier. This can be many different 151things that all refer to a "package". Examples include a package name, 152git url, tarball, or local directory. These will generally be referred 153to as <code><package-spec></code> in the help output for the npm commands that use 154this package name specifier.</p> 155<h3 id="package-name">Package name</h3> 156<ul> 157<li><code>[<@scope>/]<pkg></code></li> 158<li><code>[<@scope>/]<pkg>@<tag></code></li> 159<li><code>[<@scope>/]<pkg>@<version></code></li> 160<li><code>[<@scope>/]<pkg>@<version range></code></li> 161</ul> 162<p>Refers to a package by name, with or without a scope, and optionally 163tag, version, or version range. This is typically used in combination 164with the <a href="../using-npm/config#registry.html">registry</a> config to refer to a 165package in a registry.</p> 166<p>Examples:</p> 167<ul> 168<li><code>npm</code></li> 169<li><code>@npmcli/arborist</code></li> 170<li><code>@npmcli/arborist@latest</code></li> 171<li><code>npm@6.13.1</code></li> 172<li><code>npm@^4.0.0</code></li> 173</ul> 174<h3 id="aliases">Aliases</h3> 175<ul> 176<li><code><alias>@npm:<name></code></li> 177</ul> 178<p>Primarily used by commands like <code>npm install</code> and in the dependency 179sections in the <code>package.json</code>, this refers to a package by an alias. 180The <code><alias></code> is the name of the package as it is reified in the 181<code>node_modules</code> folder, and the <code><name></code> refers to a package name as 182found in the configured registry.</p> 183<p>See <code>Package name</code> above for more info on referring to a package by 184name, and <a href="../using-npm/config#registry.html">registry</a> for configuring which 185registry is used when referring to a package by name.</p> 186<p>Examples:</p> 187<ul> 188<li><code>semver:@npm:@npmcli/semver-with-patch</code></li> 189<li><code>semver:@npm:semver@7.2.2</code></li> 190<li><code>semver:@npm:semver@legacy</code></li> 191</ul> 192<h3 id="folders">Folders</h3> 193<ul> 194<li><code><folder></code></li> 195</ul> 196<p>This refers to a package on the local filesystem. Specifically this is 197a folder with a <code>package.json</code> file in it. This <em>should</em> always be 198prefixed with a <code>/</code> or <code>./</code> (or your OS equivalent) to reduce confusion. 199npm currently will parse a string with more than one <code>/</code> in it as a 200folder, but this is legacy behavior that may be removed in a future 201version.</p> 202<p>Examples:</p> 203<ul> 204<li><code>./my-package</code></li> 205<li><code>/opt/npm/my-package</code></li> 206</ul> 207<h3 id="tarballs">Tarballs</h3> 208<ul> 209<li><code><tarball file></code></li> 210<li><code><tarball url></code></li> 211</ul> 212<p>Examples:</p> 213<ul> 214<li><code>./my-package.tgz</code></li> 215<li><code>https://registry.npmjs.org/semver/-/semver-1.0.0.tgz</code></li> 216</ul> 217<p>Refers to a package in a tarball format, either on the local filesystem 218or remotely via url. This is the format that packages exist in when 219uploaded to a registry.</p> 220<h3 id="git-urls">git urls</h3> 221<ul> 222<li><code><git:// url></code></li> 223<li><code><github username>/<github project></code></li> 224</ul> 225<p>Refers to a package in a git repo. This can be a full git url, git 226shorthand, or a username/package on GitHub. You can specify a 227git tag, branch, or other git ref by appending <code>#ref</code>.</p> 228<p>Examples:</p> 229<ul> 230<li><code>https://github.com/npm/cli.git</code></li> 231<li><code>git@github.com:npm/cli.git</code></li> 232<li><code>git+ssh://git@github.com/npm/cli#v6.0.0</code></li> 233<li><code>github:npm/cli#HEAD</code></li> 234<li><code>npm/cli#c12ea07</code></li> 235</ul> 236<h3 id="see-also">See also</h3> 237<ul> 238<li><a href="https://npm.im/npm-package-arg">npm-package-arg</a></li> 239<li><a href="../using-npm/scope.html">scope</a></li> 240<li><a href="../using-npm/config.html">config</a></li> 241</ul></div> 242 243<footer id="edit"> 244<a href="https://github.com/npm/cli/edit/latest/docs/content/using-npm/package-spec.md"> 245<svg role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentcolor" style="vertical-align: text-bottom; margin-right: 0.3em;"> 246<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> 247</svg> 248Edit this page on GitHub 249</a> 250</footer> 251</section> 252 253 254 255</body></html>