查找已安装的 npm 软件包的版本

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

这将打印 npm 本身的版本:

npm -v <package-name>

这将显示一个神秘的错误:

npm version <package-name>

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

npm view <package-name> version

如何获得安装的版本

答案

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参数来列出已安装的软件包,而无需依赖它们。

找出本地安装了哪些软件包且没有相关性的另一种快速方法是使用:

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

npm view <package> version - 返回npm view <package> version的最新可用版本。

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

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

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

npm info YOUR_PACKAGE version

例如

npm info grunt version
0.4.5

我刚用过

npm list | grep <package name>

而且效果很好

在 Windows 上运行:

npm list | find <package name>

在 PowerShell 中运行:

npm list | sls <package name>

从包的根开始:

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

编辑 :(因此,如果尚不存在,则需要cd进入模块的主目录。如果已使用npm install安装模块,则它将位于node_modules/<module_name>

编辑 2 :根据 @ jeff-dickey 的答案进行更新

对于本地包裹

npm list --depth=0

对于全球套餐

npm list  -g --depth=0

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

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

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

npm info <package name> version

如果您同意安装jq ,则可以使用npm list的 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