Skip to content

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

Notifications You must be signed in to change notification settings

S-Amin/add-local-binaries-to-path

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

add-local-binaries-to-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-to-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

Dependencies

  • shells: Get a list of all unix shells for which user configuration files exist. Supports bash, zsh, and fish.

License

MIT

Generated by package-json-to-readme

About

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

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%