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

这将打印npm本身的版本:

npm -v <package-name>

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

npm version <package-name>

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

npm view <package-name> version

如何获取已安装的版本?


当前回答

对于本地软件包:

npm list --depth=0

对于全局程序包:

npm list -g --depth=0

其他回答

您可以使用npm view[module]版本、npm info[module]version、npm show[module]-version或npm v[module]]版本来检查已安装的npm模块的版本。

假设我的Grunt模块版本为0.4.5:

npm view grunt version => 0.4.5
npm info grunt version => 0.4.5
npm show grunt version => 0.4.5
npm v grunt version    => 0.4.5

我将此添加到.bashrc文件中:

function npmv {
    case $# in # Number of arguments passed
    0) v="$(npm -v)" ; # Store output from npm -v in variable
        echo "NPM version is: $v"; # Can't use single quotes
                                   # ${v} would also work
    ;;
    1) s="$(npm list --depth=0 $1 | grep $1 | cut -d @ -f 2)";
       echo "$s";
    ;;
    2) case "$2" in # Second argument
        g) #global| # Syntax to compare bash string to literal
             s="$(npm list --depth=0 -g $1 | grep $1 | cut -d @ -f 2)";
        echo "$s";
        ;;
        l) #Latest
             npm view $1 version; # 'npm info $1 version' does the same thing
       ;;
       *) echo 'Invalid arguments';
       ;;
       esac;
    ;;
    *) echo 'Invalid arguments';
    ;;
    esac;
}
export -f npmv

现在我要做的就是键入:

npm版本的npmv,例如,npm版本为:4.2.0本地版本的npmv<package name>,例如0.8.08全局版本的npmv<package name>g,例如0.8.09最新版本的npmv<package name>l,例如0.8.10

注意cut命令上的-d表示分隔符,后跟@,然后f表示字段。“2”表示第二个字段,因为@符号的两边都有一个。

只需检查package.json文件。

"dependencies": {
  "ajv": "^8.9.0",
  "ajv-keywords": "^5.1.0",
  "fastify": "^3.27.0"

这很简单。。只需键入以下行

npm view <package-name> version

实例

npm view redux version

我有Redux版本7.2.0。

我看到了一些非常有创意的答案,但您可以这样做(对于全局包,添加--global开关):

npm ls package

例子:

npm ls babel-cli

输出:

`-- babel-cli@6.26.0

npm文档说npm-ls

此命令将向stdout打印以及它们的依赖关系,以树形结构安装。

NPM文件