summaryrefslogtreecommitdiff
path: root/deps/npm/html/doc/link.html
blob: d3e695086cfe89d7ad7bf60478e69a18a0d0b0ad (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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<!doctype html>
<html>
  <title>link</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="../doc/link.html">link</a></h1> <p>Symlink a package folder</p>

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

<pre><code>npm link (in package folder)
npm link &lt;pkgname&gt;</code></pre>

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

<p>Package linking is a two-step process.</p>

<p>First, <code>npm link</code> in a package folder will create a globally-installed
symbolic link from <code>prefix/package-name</code> to the current folder.</p>

<p>Next, in some other location, <code>npm link package-name</code> will create a
symlink from the local <code>node_modules</code> folder to the global symlink.</p>

<p>When creating tarballs for <code>npm publish</code>, the linked packages are
&quot;snapshotted&quot; to their current state by resolving the symbolic links.</p>

<p>This is
handy for installing your own stuff, so that you can work on it and test it
iteratively without having to continually rebuild.</p>

<p>For example:</p>

<pre><code>cd ~/projects/node-redis    # go into the package directory
npm link                    # creates global link
cd ~/projects/node-bloggy   # go into some other package directory.
npm link redis              # link-install the package</code></pre>

<p>Now, any changes to ~/projects/node-redis will be reflected in
~/projects/node-bloggy/node_modules/redis/</p>

<p>You may also shortcut the two steps in one.  For example, to do the
above use-case in a shorter way:</p>

<pre><code>cd ~/projects/node-bloggy  # go into the dir of your main project
npm link ../node-redis     # link the dir of your dependency</code></pre>

<p>The second line is the equivalent of doing:</p>

<pre><code>(cd ../node-redis; npm link)
npm link redis</code></pre>

<p>That is, it first creates a global link, and then links the global
installation target into your project&#39;s <code>node_modules</code> folder.</p>

<h2 id="SEE-ALSO">SEE ALSO</h2>

<ul><li><a href="../doc/developers.html">developers(1)</a></li><li><a href="../doc/faq.html">faq(1)</a></li><li><a href="../doc/json.html">json(1)</a></li><li><a href="../doc/install.html">install(1)</a></li><li><a href="../doc/folders.html">folders(1)</a></li><li><a href="../doc/config.html">config(1)</a></li></ul>
</div>
<p id="footer">link &mdash; npm@1.2.17</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>
</body></html>