How to tell if npm package was installed globally or locally

node.jsGruntjsNpm

node.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"

sample result

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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAndraeRayView Question on Stackoverflow
Solution 1 - node.jsMuntaser AhmedView Answer on Stackoverflow
Solution 2 - node.jsFlimmView Answer on Stackoverflow
Solution 3 - node.jsmvermandView Answer on Stackoverflow
Solution 4 - node.jsMwizaView Answer on Stackoverflow
Solution 5 - node.jsSHARATH PView Answer on Stackoverflow
Solution 6 - node.jsCiro Santilli Путлер Капут 六四事View Answer on Stackoverflow