JSPM

add-local-binaries-path

1.0.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 7
  • Score
    100M100P100Q34919F

Never type ./node_modules/.bin again! Make locally-installed node modules executable by name by adding ./node_modules/.bin to the $PATH

Package Exports

  • add-local-binaries-path
  • add-local-binaries-path/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (add-local-binaries-path) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

add-local-binaries-path

Never type ./node_modules/.bin again!

Make locally-installed node modules executable by name by adding ./node_modules/.bin to the $PATH.

Works for bash, fish, and zsh.

Why?

The goal of this is to avoid "works on my machine" problems. You shouldn't really be installing most modules globally. It's best to declare all of your project's dependencies in the package.json file, so npm install will always work for everyone, regardless of what they have installed globally.

Installation

npm i -g add-local-binaries-path

A postinstall task looks for these files:

~/.bashrc
~/.bash_profile
~/.config/fish/config.fish
~/.zshrc

For each shell configuration file found, a string is injected into the file that adds .node_modules/.bin to the $PATH environment variable.

For bash and zsh, it looks like this:

export PATH="$PATH:./node_modules/.bin"

For fish, this:

set -gx PATH $PATH ./node_modules/.bin

Usage

Once you've installed this module, you never really need to use it agin. It has done its work. To make sure it's working, try this:

mkdir foo
cd foo
npm init --yes
npm i shrug --save
shrug
which shrug

License

MIT