ChatGPT解决这个技术问题 Extra ChatGPT

How to tell if npm package was installed globally or locally

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.


y
yzorg

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


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
F
Flimm
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.


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.
m
mvermand

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.


M
Mwiza

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


S
SHARATH P

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"

https://i.stack.imgur.com/S74XQ.png


C
Ciro Santilli Путлер Капут 六四事

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.


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.