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

时间:2014-09-29 16:12:36

标签: node.js gruntjs npm

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

说明说我应该使用-g标志为全局运行安装命令。

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

6 个答案:

答案 0 :(得分:172)

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

npm list -g

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

npm list -g grunt

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

npm list -g | grep grunt

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

答案 1 :(得分:28)

npm list --depth 1 --global packagename > /dev/null 2>&1

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

答案 2 :(得分:15)

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

npm list -g [package-name]

让我们以“咕噜”为例。 如果它是全局安装的,你应该看到类似这样的东西

C:\data\tryout\test1>npm list -g grunt
C:\Users\xxxxxxx\AppData\Roaming\npm
└── grunt@0.4.5

如果未全局安装,您应该看到类似这样的内容

C:\data\tryout\test1>npm list -g grunt
C:\Users\xxxxxxx\AppData\Roaming\npm
└── (empty)

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

来源:How to check if npm package was installed globally or locally

答案 3 :(得分:4)

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

npm ls -g

或者检查特定包裹:

npm ls -g [package-name] 

例如:npm ls -g @angular/cli

答案 4 :(得分:1)

在Windows中,我们使用以下命令来确定软件包是否已安装。请参考图片了解详情。

npm list -g | find "create"

sample result

答案 5 :(得分:0)

从您的包裹中sindresorhus/is-installed-globally

https://github.com/sindresorhus/is-installed-globally

用法:

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

当我必须使用软件包分发预构建文件时,我发现这很有用:How to publish a npm package with distribution files?使用此软件包,我可以检查安装是本地的还是全局的,然后使用相对路径进行本地安装,{{3 }}。

相关问题