如何查找已安装Node.js或npm包的版本?

这将打印npm本身的版本:

npm -v <package-name>

这将打印一个隐藏的错误:

npm version <package-name>

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

npm view <package-name> version

如何获取已安装的版本?


当前回答

从包的根目录执行以下操作:

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

(因此,如果您还不在模块的主目录中,则需要cd到该目录中。如果您安装了带有npm install的模块,则该模块将位于node_modules/<module_name>下。)

其他回答

如果您同意安装jq,可以使用npm列表的JSON输出:

npm -j ls <package-name> | jq -r .version

或者,如果您想说得更详细:

npm --json list <package-name> | 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

您还可以在文本编辑器中手动查看package.json文件,以查看哪些包是依赖项。如果npm列表不能作为手动选项使用,请使用此选项。

我正在使用

npm list --depth=0 | grep module_name@

它给我带来了这样的结果:

module_name@2.1033.0

这里有一个可移植的Unix(使用grep和sed)一行程序,它返回全局安装的npm包的版本字符串(从-pg中删除g以查询本地包):

npm ll -pg --depth=0 grunt | grep -o "@.*:" | sed 's/.$//; s/^.//'

输出:

0.4.5

npm ll输出一个可解析字符串,格式如下:/usr/lib/node_modules/npm:npm@2.14.8:;grep命令提取@和:之间的值,包括;sed命令删除周围的字符。

您可以查看文件package.json以查看已安装的软件包版本。

要在命令行上获取列表,

npm ls

它将为您提供项目中所有已安装的软件包及其各自的版本。

对于特定的包版本,

npm ls <package-name>

例如

npm ls next

它将返回版本

-- next@10.1.3