npmlinxxx

1.0.0 • Public • Published

npmlinxxx

a kinder, gentler alternative to npm link

install

$ npm install npmlinxxx

usage

josh@koffing:~/dev/jesusabdullah/korben-twitter$ npmlinxxx
linxxx info hello YES THIS IS NPMLINXXX
linxxx ERR! wat Error: USAGE: npmlinxxx [dependency]
linxxx ERR! wat
linxxx ERR! wat (dependency is path to project root)
linxxx ERR! wat
linxxx ERR! bye better luck next time!
josh@koffing:~/dev/jesusabdullah/korben-twitter$ ls
README.md korben.js npm-debug.log seed.txt
creds.json  node_modules  package.json
josh@koffing:~/dev/jesusabdullah/korben-twitter$ ls ../kenny-loggins/
README.md   colorize.js   loggins.jpg   package.json
browser.js    index.js    loggins.js    test.js
colorize-browser.js log-browser.js    loggins.xcf   test.sh
josh@koffing:~/dev/jesusabdullah/korben-twitter$ npmlinxxx ../kenny-loggins
linxxx info hello YES THIS IS NPMLINXXX
linxxx WARN derf Looks like /Users/josh/dev/jesusabdullah/korben-twitter/node_modules/kenny-loggins already exists!
linxxx ??!? rm -rf Nuke it? [y/N] y
linxxx info ln -s Linking kenny-loggins
linxxx info ln -s /Users/josh/dev/jesusabdullah/kenny-loggins -> /Users/josh/dev/jesusabdullah/korben-twitter/node_modules/kenny-loggins
linxxx info bye good job!
josh@koffing:~/dev/jesusabdullah/korben-twitter$

rationale

npm link is a nifty little tool that will symlink arbitrary node libraries on the filesystem directly into your project. This is really useful for developing a dependent and dependency concurrently.

However, there's a small but important wrinkle: Linking works in two parts. npm link exposes the module as installable by first linking it globally. Then, npm link [dependency] links the global version of the module into your project. Usually this isn't a deal-breaker, but there are some less savoury ramifications:

  • Running npm link as a priveleged user (not technically necessary, but the default behavior) requires unsettlingly high permissions given the task at hand
  • You expose a development version of potential module bins to all your shells
  • git+ssh urls can cause problems because ssh doesn't properly inherit your known hosts when ran with sudo.

npmlinxxx is used to symlink other modules directly into node_modules, thus avoiding some of these issues.

Tests

Right now, just me using it.

License

MIT.

Readme

Keywords

Package Sidebar

Install

npm i npmlinxxx

Weekly Downloads

2

Version

1.0.0

License

MIT

Last publish

Collaborators

  • jesusabdullah