Don't (always) npm install -g
Posted on Thu 26 November 2015 in JavaScript
Had a chat with a respected hacker friend of mine who did not know about this trick (although to be fair, I'm not sure I knew about it until all that long ago).
There's almost never any need to use npm install -g
, you could argue it's an anti-pattern as it makes your software harder to install for other users and can easily cause conflcits between projects. The most common candidates for a bit of global installing are test and build utils like mocha, typescript and grunt-cli; instead of reaching for -g
you can install them locally in your project and execute them from the symlink created in node_modules/.bin
, eg:
npm install --save-dev mocha
./node_modules/.bin/mocha --help
You can also make use of the npm bin
command which will resolve the nearest node_modules/.bin
path to the cwd:
`npm bin`/mocha --help
As an added bonus, NPM scripts don't need to add the node_modules/.bin
prefix - it's added automatically:
{
"name": "my-awesome-pkg",
"scripts": {
"test": "mocha"
}
}