<!doctype html>
<html>
  <title>npm-shrinkwrap</title>
  <meta http-equiv="content-type" value="text/html;utf-8">
  <link rel="stylesheet" type="text/css" href="../../static/style.css">

  <body>
    <div id="wrapper">
<h1><a href="../api/npm-shrinkwrap.html">npm-shrinkwrap</a></h1> <p>programmatically generate package shrinkwrap file</p>

<h2 id="SYNOPSIS">SYNOPSIS</h2>

<pre><code>npm.commands.shrinkwrap(args, [silent,] callback)</code></pre>

<h2 id="DESCRIPTION">DESCRIPTION</h2>

<p>This acts much the same ways as shrinkwrapping on the command-line.</p>

<p>This command does not take any arguments, but &#39;args&#39; must be defined.
Beyond that, if any arguments are passed in, npm will politely warn that it
does not take positional arguments.</p>

<p>If the &#39;silent&#39; parameter is set to true, nothing will be output to the screen,
but the shrinkwrap file will still be written.</p>

<p>Finally, &#39;callback&#39; is a function that will be called when the shrinkwrap has
been saved.</p>
</div>
<p id="footer">npm-shrinkwrap &mdash; npm@1.3.21</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
  .filter(function (el) {
    return el.parentNode === wrapper
        && el.tagName.match(/H[1-6]/)
        && el.id
  })
var l = 2
  , toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
  var i = el.tagName.charAt(1)
    , out = ""
  while (i > l) {
    out += "<ul>"
    l ++
  }
  while (i < l) {
    out += "</ul>"
    l --
  }
  out += "<li><a href='#" + el.id + "'>" +
    ( el.innerText || el.text || el.innerHTML)
    + "</a>"
  return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
