Skip to content
Oeiuwq Faith Blog OpenSource Porfolio

feross/zelda

Automatically `npm link` all your packages together!

feross/zelda.json
{
"createdAt": "2014-03-20T03:54:26Z",
"defaultBranch": "master",
"description": "Automatically `npm link` all your packages together!",
"fullName": "feross/zelda",
"homepage": "",
"language": "JavaScript",
"name": "zelda",
"pushedAt": "2020-05-11T17:21:05Z",
"stargazersCount": 284,
"topics": [
"javascript",
"link",
"nodejs",
"npm",
"zelda"
],
"updatedAt": "2025-08-14T17:47:25Z",
"url": "https://github.com/feross/zelda"
}

zelda [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url]

Section titled “zelda [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url]”

[travis-image] !: https://img.shields.io/travis/feross/zelda/master.svg [travis-url] !: https://travis-ci.org/feross/zelda [npm-image] !: https://img.shields.io/npm/v/zelda.svg [npm-url] !: https://npmjs.org/package/zelda [downloads-image] !: https://img.shields.io/npm/dm/zelda.svg [downloads-url] !: https://npmjs.org/package/zelda [standard-image] !: https://img.shields.io/badge/code_style-standard-brightgreen.svg [standard-url] !: https://standardjs.com

Section titled “Automatically npm link all your packages together!”

link spin attack

Sometimes Link needs a little help from Zelda.

  1. Install it globally.
Terminal window
npm install -g zelda
  1. Run zelda from your node project directory. For example:
Terminal window
cd ~/code/my-project
zelda

zelda finds all the node packages in your code folder (~/code/ in the example). If any of these packages are listed as a dependency in the nearest package.json of your working directory, it automatically symlinks it for you.

Zelda assumes that all your code lives in the directory one level up from the folder where you run zelda. So, keep all your packages in a single folder like ~/code and run zelda inside one of the projects (ex: ~/code/my-project).

  1. Clone a cool project.
Terminal window
mkdir ~/code
cd ~/code
git clone git@github.com:feross/webtorrent.git
  1. Clone the project dependencies you plan to work on.
Terminal window
git clone git@github.com:feross/bittorrent-protocol.git
git clone git@github.com:feross/bittorrent-swarm.git
git clone git@github.com:feross/bittorrent-dht.git
  1. Recursively npm install all project dependencies, but npm link the ones that are local.
Terminal window
cd webtorrent
zelda

Gone are the days of running tons of npm link commands by hand!

  • Automatically npm link all your modules together
  • Supports dependencies, devDependencies, and optionalDependencies
  • Recursively runs npm install so your freshly cloned projects are ready to go!

link

MIT. Copyright Feross Aboukhadijeh.