Skip to content

ryanve/symlinked

Repository files navigation

symlinked

Node utility to list symlinks made by npm link, yarn link, or fs.link

Install

npm install symlinked

Local install as above is best practice if you are using in a shared codebase because then all developers will use the same version. CLI can be used locally via npx or via npm scripts. npm install has a --global flag you can add if you prefer global use. Yarn can be used via yarn add and yarn global add respectively if you prefer yarn.

CLI

Usage: symlinked <command> [<path>]

  Finds all linked package names of an npm package.

Commands:

  names    Get linked package names
  paths    Get linked package paths
  roots    Get linked package roots
  links    Get linked package links

Options:

  -h, --help     Display this usage info

CLI example

# Link some packages for example
npm link @songkick/promise-retry
npm link eol

$ symlinked names
@songkick/promise-retry
eol

$ symlinked paths
/Users/doe/project/node_modules/@songkick/promise-retry
/Users/doe/project/node_modules/eol

$ symlinked roots
/Users/doe/project/node_modules/@songkick/promise-retry/node_modules
/Users/doe/project/node_modules/eol/node_modules

$ symlinked links
/usr/local/lib/node_modules/@songkick/promise-retry
/usr/local/lib/node_modules/eol

API

require

const symlinked = require("symlinked")

Methods

  • symlinked.names(dir: ".") get array of linked package names
  • symlinked.paths(dir: ".") get array of linked package paths
  • symlinked.roots(dir: ".") get array of linked package roots
  • symlinked.links(dir: ".") get array of linked package links
  • symlinked.is(path) test if path exists and is linked
  • symlinked.read(path) read link

Examples

Ran in package directory with said dependency linked on both ends

symlinked.names()
// [ 'said' ]
symlinked.paths()
// [ '/Users/jdoe/symlinked/node_modules/said' ]
symlinked.roots()
// [ '/Users/jdoe/symlinked/node_modules/said/node_modules' ]
symlinked.links()
// [ '/Users/said' ]

Webpack

resolve.modules configuration to resolve dependencies of linked dependencies

module.exports = {
  resolve: {
    modules: ["node_modules"].concat(symlinked.roots())
  }
}