ChatGPT解决这个技术问题 Extra ChatGPT

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

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

说明说我应该为全局运行带有 -g 标志的安装命令。

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


y
yzorg

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

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.Here's a more detailed example
@AdamMonsen,我正在寻找燕鸥的 top level 安装。我使用 npm list --depth 0 --global tern 来检查 tern 是否像 npm install -g tern 一样全局安装
grep 似乎是一个相当可靠的解决方案,因为有关 npm 由于未满足的依赖关系而退出并出现错误的评论
F
Flimm
npm list --depth 1 --global packagename > /dev/null 2>&1

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


感谢--depth 1!这就是我要找的。其实我现在用的是npm list --depth 0 -g
出于某种原因,$? 总是为我返回 1,即使软件包已安装或未安装。
警告:如果您的任何包具有未满足的依赖关系,即使安装了包,npm 也会始终退出并出现错误。 @Kayvar 这就是 npm 为您返回 1 的原因。
m
mvermand

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

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


M
Mwiza

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

npm ls -g

或者检查一个特定的包:

npm ls -g [package-name] 

例如:npm ls -g @angular/cli


S
SHARATH P

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

npm list -g | find "create"

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


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

来自您与 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? 使用这个包,我可以检查安装是本地的还是全局的,然后使用相对路径进行本地安装,as shown here


例子不是很清楚。如何检查“gulp-cli”是否已安装?
@AndrewJuniorHoward 请注意,此方法仅用于从您控制的包内的依赖项中进行检查。