235

I am installing Grunt, Node.js, npm, Bower, and grunt-cli on Windows 7.

The instructions say I should run the install commands with the -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.

6 Answers 6

331

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

Sign up to request clarification or add additional context in comments.

3 Comments

For a boolean "installed or not?" check, try using --depth. For example: npm list --depth 1 --global csats-mturk > /dev/null 2>&1.Here's a more detailed example.
@AdamMonsen , I was looking for top level installation of tern. I used npm list --depth 0 --global tern to check if tern was installed globally as if npm install -g tern
grep seems like a fairly reliable solution given the comments about npm exiting with an error due to unmet dependencies
43
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.

5 Comments

thanks for --depth 1! that's what I was looking for. Actually I'm using now npm list --depth 0 -g
For some reason $? always returns 1 for me, even if the package IS installed or NOT installed.
WARNING: npm will always exit with an error if any of your packages have unmet dependencies, even if the package is installed. @Kayvar this is why npm is returning 1 for you.
There is a warning (to standard error): "npm WARN config global --global, --local are deprecated. Use --location=global instead."
This command does not work.
26

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:

npm list -g grunt 

Output:

C:\Users\xxxxxxx\AppData\Roaming\npm └── [email protected] 

If it is not installed globally, you should see something like this

npm list -g grunt 

Output:

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.

Comments

12

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

1 Comment

There is a warning (to standard error): "npm WARN config global --global, --local are deprecated. Use --location=global instead."
7

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

Comments

1

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: How to publish a npm package with distribution files? With this package, I can check if the installation is local or global, and then use relative paths for local installations, as shown here.

2 Comments

The examples aren't very clear. How would one want to check if "gulp-cli" has been installed?
@AndrewJuniorHoward note that this method is only to check from within a dependency inside a package you control.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.