How to tell if npm package was installed globally or locally
node.jsGruntjsNpmnode.js Problem Overview
I am installing grunt, node, npm, bower, and grunt-cli on windows7.
The instructions say i should run the install commands with -g flag for global.
How can I check if I used the -g flag when i installed. It will take a lot of time to uninstall them and reinstall.
node.js Solutions
Solution 1 - node.js
Use the list
command with the -g
flag to see all packages that are installed globally:
npm list -g
To check if a specific package is installed globally, you can provide the name of package (grunt
in this case) as seen below:
npm list -g grunt
Or you can use grep
to filter on package names:
npm list -g | grep grunt
Source: https://docs.npmjs.com/cli/ls
Solution 2 - node.js
npm list --depth 1 --global packagename > /dev/null 2>&1
You can then check the exit status to see if it's installed or not. Thanks Adam Monsen.
Solution 3 - node.js
To check if a specific package is installed globally execute:
npm list -g [package-name]
Let's take "grunt" as an example. If it is installed globally, you should see something like this
C:\data\tryout\test1>npm list -g grunt
C:\Users\xxxxxxx\AppData\Roaming\npm
└── grunt@0.4.5
If it is not installed globally, you should see something like this
C:\data\tryout\test1>npm list -g grunt
C:\Users\xxxxxxx\AppData\Roaming\npm
└── (empty)
To check if a specific package is installed locally you can execute the same commands as above but without the -g parameter.
source: [How to check if npm package was installed globally or locally][1].
[1]: http://resolvethis.com/how-to-check-if-npm-package-was-installed-globally-or-locally/ "HOW TO CHECK IF NPM PACKAGE WAS INSTALLED GLOBALLY OR LOCALLY"
Solution 4 - node.js
You can list all global packages with the command:
npm ls -g
Or check for a specific package with:
npm ls -g [package-name]
For example: npm ls -g @angular/cli
Solution 5 - node.js
In Windows we use the following command to find out whether the package is installed or not. Please refer image for details.
npm list -g | find "create"
Solution 6 - node.js
From your package with sindresorhus/is-installed-globally
https://github.com/sindresorhus/is-installed-globally
Usage:
const isInstalledGlobally = require('is-installed-globally');
// With `npm install your-package`
console.log(isInstalledGlobally);
//=> false
// With `npm install --global your-package`
console.log(isInstalledGlobally);
//=> true
I found this useful when I had to distribute prebuilt files with my package: https://stackoverflow.com/questions/31642477/how-to-publish-a-npm-package-with-distribution-files/59407033#59407033 With this package, I can check if the installation is local or global, and then use relative paths for local installations, as shown here.