如何判断npm包是全局安装还是本地安装

And*_*Ray 132 node.js npm gruntjs

我在windows7上安装grunt,node,npm,bower和grunt-cli.

说明说我应该使用-g标志为全局运行install命令.

如何在安装时检查是否使用了-g标志.卸载它们并重新安装需要花费大量时间.

Mun*_*med 191

使用list带有该-g标志的命令可以查看全局安装的所有软件包:

npm list -g

要检查是否全局安装了特定包,您可以提供包的名称(grunt在本例中),如下所示:

npm list -g grunt

或者您可以使用grep过滤包名称:

npm list -g | grep grunt

资料来源:https://docs.npmjs.com/cli/ls

  • 对于布尔"安装与否?" 检查,尝试使用`--depth`.例如:`npm list --depth 1 --global csats-mturk>/dev/null 2>&1`.[这是一个更详细的例子](https://gitlab.com/snippets/3883). (4认同)
  • @AdamMonsen,我正在寻找tern的_top level_安装.我使用`npm list --depth 0 --global tern`来检查是否全局安装了tern,好像`npm install -g tern` (2认同)

Fli*_*imm 29

npm list --depth 1 --global packagename > /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)

然后,您可以检查退出状态以查看是否已安装.谢谢Adam Monsen.

  • 警告:如果任何软件包具有未满足的依赖关系,则npm将始终以错误退出,**即使已安装软件包**.@Kayvar这就是为什么npm会为你返回1. (4认同)
  • 谢谢`--depth 1`!这就是我想要的.其实我现在正在使用`npm list --depth 0 -g` (3认同)

mve*_*and 16

要检查是否全局安装了特定包,请执行:

npm list -g [package-name]
Run Code Online (Sandbox Code Playgroud)

我们以"咕噜"为例.如果它是全局安装的,你应该看到这样的东西

C:\data\tryout\test1>npm list -g grunt
C:\Users\xxxxxxx\AppData\Roaming\npm
??? grunt@0.4.5
Run Code Online (Sandbox Code Playgroud)

如果没有全局安装,你应该看到这样的东西

C:\data\tryout\test1>npm list -g grunt
C:\Users\xxxxxxx\AppData\Roaming\npm
??? (empty)
Run Code Online (Sandbox Code Playgroud)

要检查特定包是否在本地安装,您可以执行与上面相同的命令但不使用-g参数.

source:如何检查npm包是全局安装还是本地安装.


SHA*_*H P 7

在 Windows 中,我们使用以下命令来查明该软件包是否已安装。详情请参阅图片。

npm list -g | find "create"
Run Code Online (Sandbox Code Playgroud)

样本结果


Mwi*_*iza 6

您可以使用以下命令列出所有全局软件包:

npm ls -g
Run Code Online (Sandbox Code Playgroud)

或使用以下方法检查特定的包装:

npm ls -g [package-name] 
Run Code Online (Sandbox Code Playgroud)

例如: npm ls -g @angular/cli