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

问题描述 投票:0回答:6

我正在 Windows 7 上安装 GruntNode.js、npm、Bower 和 grunt-cli。

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

如何检查安装时是否使用了 -g 标志?卸载并重新安装会花费很多时间。

node.js gruntjs npm
6个回答
322
投票

使用带有

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

npm list -g

要检查特定包是否已全局安装,您可以提供包的名称(在本例中为

grunt
),如下所示:

npm list -g grunt

或者您可以使用

grep
来过滤包名称:

npm list -g | grep grunt

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


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

然后您可以检查退出状态以查看它是否已安装。谢谢亚当·蒙森


25
投票

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

npm list -g [package-name]

我们以 Grunt 为例。如果它是全局安装的,您应该看到类似这样的内容:

npm list -g grunt

输出:

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

如果没有全局安装,你应该会看到类似这样的内容

npm list -g grunt

输出:

C:\Users\xxxxxxx\AppData\Roaming\npm
└── (empty)

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

来源:如何检查 npm 包是全局安装还是本地安装


10
投票

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

npm ls -g

或者通过以下方式检查特定包:

npm ls -g package-name

例如:

npm ls -g @angular/cli


7
投票

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

npm list -g | find "create"

sample result


1
投票

从您的包裹中

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

当我必须使用我的包分发预构建的文件时,我发现这很有用:如何发布带有分发文件的 npm 包?使用此包,我可以检查安装是本地还是全局,然后使用本地的相对路径安装,如此处所示

© www.soinside.com 2019 - 2024. All rights reserved.