问:

如何查找已安装的 node.js/npm 包的版本?

这将打印 npm 本身的版本:

npm -v

这会打印一个神秘的错误:

npm version

这会在注册表上打印软件包版本(即可用的最新版本):

npm view version

如何获取已安装的版本?

答1:

huntsbot.com洞察每一个产品背后的需求与收益,从而捕获灵感

npm list 用于本地软件包或 npm list -g 用于全局安装的软件包。

您可以通过将其名称作为参数传递来查找特定包的版本。例如,npm list grunt 将导致:

projectName@projectVersion /path/to/project/folder

└── grunt@0.4.1

或者,您可以只运行 npm list 而不传递包名称作为参数来查看所有包的版本:

├─┬ cli-color@0.1.6

│ └── es5-ext@0.7.1

├── coffee-script@1.3.3

├── less@1.3.0

├─┬ sentry@0.1.2

│ ├── file@0.2.1

│ └── underscore@1.3.3

└── uglify-js@1.2.6

您还可以添加 --depth=0 参数以列出已安装的软件包而不列出其依赖项。

在 mac 和 linux 上,添加“|grep module_name”很好,以过滤所需的模块版本。尤其是在使用 -g 全局运行时。例如:“npm list -g | grep express”获取已安装的 express 版本。

如果你想要一个特定的模块,你可以像npm list less-middleware那样运行它作为例子。

根据 @guya 针对基于 *nix 的系统的提示,在 Windows 上,您可以使用 PowerShell 获得类似结果:| select-string module_name 过滤模块。或者,如果您使用的是 Git Bash(或者只是 Bash,就此而言),您可以使用 grep。

如果您不记得 list,npm ls 也可以。事实上,许多 npm 命令都有别名,而且,如果你键入命令的子字符串,如果这个子字符串是明确的,它也可以工作;例如 npm ls、npm list、npm lis 都是一样的。如果您想要更详细的输出,请尝试 npm ll(但可能您希望将 --depth=0 添加到其中)。

输出不是使用脚本解析的最佳选择。是否真的没有办法获得只是包版本的输出而不必执行npm list -g | awk -F@ '// { print $2}'之类的操作

答2:

与HuntsBot一起,探索全球自由职业机会–huntsbot.com

另一种快速找出哪些软件包安装在本地并且没有依赖项的方法是使用:

npm list --depth=0

这给了你类似的东西

├── bower@0.8.6

├── grunt@0.4.1

├── grunt-bower-requirejs@0.4.3

├── grunt-contrib-clean@0.4.1

├── grunt-contrib-coffee@0.7.0

├── grunt-contrib-copy@0.4.1

├── grunt-contrib-imagemin@0.1.4

├── grunt-contrib-jshint@0.1.1

├── grunt-contrib-livereload@0.1.2

├── grunt-contrib-requirejs@0.4.1

├── grunt-regarde@0.1.1

└── grunt-svgmin@0.1.0

显然,同样可以使用 npm list -g --depth=0 全局完成。

如果你安装了很多包,这种方法会更清楚。

要找出需要更新的软件包,您可以使用 npm outdated -g --depth=0。

它给我的和没有 --depth 一样

看来他们已经在 npm 1.4.6 中修复了它。请参阅github.com/npm/npm/issues/4733

与 | grep 配合得很好

@ygaradon 正确,但 --depth=0 使它更快,因为它不必递归加载依赖项

npm list -g --depth=0 用于全局安装的列表模块

答3:

huntsbot.com精选全球7大洲远程工作机会,涵盖各领域,帮助想要远程工作的数字游民们能更精准、更高效的找到对方。

npm view version - 返回软件包的最新可用版本。

npm list --depth=0 - 返回所有已安装模块的版本,没有依赖关系。

npm list - 返回所有模块和依赖项的版本。

最后获取节点版本:node -v

npm 查看 版本,转到 npm 远程注册表,而不是本地文件系统...

@AlexanderMills 是的,但是将它放在这里可以避免再次搜索。顺便说一句,npm v、npm info 和 npm show 都是 npm view 的别名。

同样,npm view versions 将返回软件包的所有版本,而不仅仅是最新版本。

答4:

huntsbot.com提供全网独家一站式外包任务、远程工作、创意产品分享与订阅服务!

npm info YOUR_PACKAGE version

例如

npm info grunt version

0.4.5

这不显示已安装的软件包版本,它只显示最新的可用版本。

同意@tanner-semerad。我检查了 Docs of npm 以清除它。 npm info 是 npm view 的别名,在 Docs of npm 中您会发现: 此命令显示有关包的数据并将其打印到 outfd 配置引用的流中,默认为 stdout。 [...] 如果未指定,默认版本为“最新”。这就是我投反对票的方式。

显示可用的最新版本,而不是最新安装的。否决。

npm info YOUR_PACKAGE version 唯一有效的 :)

不,如前所述,这将在注册表中显示最新版本。如果您的本地依赖项碰巧在最新版本上,则此“似乎”有效。但如果不是,您将看不到使用此命令实际安装的(旧)版本。

答5:

huntsbot.com汇聚了国内外优秀的初创产品创意,可按收入、分类等筛选,希望这些产品与实践经验能给您带来灵感。

从包的根目录执行:

node -p "require('./package.json').version"

编辑:(因此,如果您还没有进入模块的主目录,则需要 cd。如果您使用 npm install 安装了模块,那么它将在 node_modules/ 下)

编辑 2:根据@jeff-dickey 的回答更新

好的!正如其他答案所建议的那样(〜1s而不是〜20s)比运行“npm list”快得多 - 至少当你准备好这个代码片段时! (真的应该有一个 npm 插件来做到这一点......)

或node -p "require('./package.json').version"

如果有 ^ ~ 之类的范围分隔符,则不会安装实际版本

我想反对@geedew 的评论。这个答案建议在已安装模块的根文件夹中运行。在已安装模块的 package.json 中,您将(!)找到实际安装的版本。

答6:

huntsbot.com聚合了超过10+全球外包任务平台的外包需求,寻找外包任务与机会变的简单与高效。

我刚用

npm list | grep

效果很好

在 Windows 上运行:

npm list | find

在 PowerShell 中运行:

npm list | sls

find 版本对我不起作用 - 即使使用带引号的字符串,但 powershell 运行良好

对于 Windows 用户: npm list -g --depth=0 |find ""注意 双引号

答7:

一个优秀的自由职业者,应该有对需求敏感和精准需求捕获的能力,而huntsbot.com提供了这个机会

这很简单…只需在下面输入

npm view version

例子

npm view redux version

我有版本 7.2.0 的 redux

它有效这应该是现在接受的答案。

打败我为什么“npm view < package-name > --version”不被接受!

注意:这不显示已安装的版本。它显示了 npm 上的最新可用版本。

正如@FelixAlcala 所说,这不显示已安装软件包的版本,仅显示最新可用的版本。

@KieranRyan,因为这是错误的。 (参见 Felix 和其他人的评论。)

答8:

huntsbot.com洞察每一个产品背后的需求与收益,从而捕获灵感

对于本地包

npm list --depth=0

对于全球包裹

npm list -g --depth=0

答9:

打造属于自己的副业,开启自由职业之旅,从huntsbot.com开始!

结合上面的一些答案并产生一个超级简单和超级快速的查找。从项目根目录运行。无需 cd 进入任何文件夹,只需 1 行:

node -p “require(‘SOMEPACKAGE/package.json’).version”

保持自己快人一步,享受全网独家提供的一站式外包任务、远程工作、创意产品订阅服务–huntsbot.com

答10:

huntsbot.com洞察每一个产品背后的需求与收益,从而捕获灵感

如果您同意安装 jq,则可以使用 npm list 的 JSON 输出。

npm -j ls | jq -r .version

或者,如果你想详细一点

npm --json list | jq --raw-output '.version'

例如:

$ npm -j ls ghost | jq -r .version

0.4.2

此外,全局包的 JSON 格式略有不同,因此您需要更改查询。

例如:

$ npm -j -g ls | jq -r .dependencies.ghost.version

0.4.2

答11:

保持自己快人一步,享受全网独家提供的一站式外包任务、远程工作、创意产品订阅服务–huntsbot.com

您还可以使用以下命令检查版本:

npm info version

同样,它显示包注册表中可用的最新版本,而不是当前安装的包的版本。

@DawidFerenczy 同意其仅显示最新版本,例如 npm info httpaction

原文链接:https://www.huntsbot.com/qa/xMEM/find-the-version-of-an-installed-npm-package?lang=zh_CN&from=csdn

huntsbot.com聚合了超过10+全球外包任务平台的外包需求,寻找外包任务与机会变的简单与高效。

相关链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: