<h1><a href="../cli/npm-link.html">npm-link</a></h1> <p>Symlink a package folder</p> <h2 id="synopsis">SYNOPSIS</h2> <pre><code>npm link (in package folder) npm link [@<scope>/]<pkgname> npm ln (with any of the previous argument usage) </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 (see <code><a href="../misc/npm-config.html">npm-config(7)</a></code> for the value of <code>prefix</code>).</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>Note that <code>package-name</code> is taken from <code>package.json</code>, not from directory name.</p> <p>The package name can be optionally prefixed with a scope. See <code><a href="../misc/npm-scope.html">npm-scope(7)</a></code>. The scope must by preceded by an @-symbol and followed by a slash.</p> <p>When creating tarballs for <code>npm publish</code>, the linked packages are "snapshotted" 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's <code>node_modules</code> folder.</p> <p>If your linked package is scoped (see <code><a href="../misc/npm-scope.html">npm-scope(7)</a></code>) your link command must include that scope, e.g.</p> <pre><code>npm link @myorg/privatepackage </code></pre><h2 id="see-also">SEE ALSO</h2> <ul> <li><a href="../misc/npm-developers.html">npm-developers(7)</a></li> <li><a href="../misc/npm-faq.html">npm-faq(7)</a></li> <li><a href="../files/package.json.html">package.json(5)</a></li> <li><a href="../cli/npm-install.html">npm-install(1)</a></li> <li><a href="../files/npm-folders.html">npm-folders(5)</a></li> <li><a href="../cli/npm-config.html">npm-config(1)</a></li> <li><a href="../misc/npm-config.html">npm-config(7)</a></li> <li><a href="../files/npmrc.html">npmrc(5)</a></li> </ul>