找到已安装的npm包的版本

时间:2012-06-10 20:36:28

标签: node.js package npm

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

这将打印npm本身的版本:

npm -v <package-name>

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

npm version <package-name>

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

npm view <package-name> version

如何获得已安装的版本

30 个答案:

答案 0 :(得分:2223)

本地软件包

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 

答案 1 :(得分:789)

另一种快速查找已安装本地没有依赖的软件包的方法是使用:

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

答案 2 :(得分:191)

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

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

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

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

答案 3 :(得分:72)

npm info grunt version
0.4.5

e.g。

{{1}}

答案 4 :(得分:50)

我刚用过

  public FormEntity CopyFormData(CopyForm copyForm)
    {
        using (SIPSEntities db = new SIPSEntities())
        {

            if (db.QmsEvaluationForms.Where(x => x.IsActive == true).Any(x => x.FormName == copyForm.FormName))
            {
                throw new Exception("Form Name Already Exists!");
            }
            else
            {
                var copyData = (from log in db.QmsEvaluationForms
                                where log.EvaluationFormId == copyForm.CopyFrom && log.IsActive == true
                                select new
                                {
                                    ZeroOnFatal = log.MakeScoreZeroOnFatal,
                                    FormControls = (from log1 in log.QmsEvaluationFormControls where log1.IsActive == true select log1).ToList(),
                                    FormParameters = (from log1 in log.QmsEvaluationParameters where log1.IsActive == true select log1).ToList()
                                }).FirstOrDefault();

                //Insert new form

                QmsEvaluationForm newForm = new QmsEvaluationForm();
                newForm.FormName = copyForm.FormName;
                newForm.MakeScoreZeroOnFatal = copyData.ZeroOnFatal;
                newForm.IsActive = true;
                newForm.CreatedOn = DateTime.Now;
                newForm.SubprocessId = copyForm.SubProcessId;

                //(copy data from child table) this data is deleted from previous form and copied to another form
                newForm.QmsEvaluationFormControls = copyData.FormControls;

                //(copy data from child table) this data is deleted from previous form and copied to another form
                newForm.QmsEvaluationParameters = copyData.FormParameters;
                db.QmsEvaluationForms.Add(newForm);
                db.SaveChanges();
                return new FormEntity { FormId = newForm.EvaluationFormId, FormName = newForm.FormName, MakeZero = newForm.MakeScoreZeroOnFatal };


            }


        }
    }

并且效果很好

在Windows上运行:

npm list | grep <package name>

在PowerShell中运行:

npm list | find <package name>

答案 5 :(得分:38)

从包的根目录执行:

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

编辑 :(如果您还没有cd,则需要npm install进入模块的主目录。如果您已经使用node_modules/<module_name>安装了模块,那么它将会在margin :0;)下

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

答案 6 :(得分:17)

对于本地包

npm list --depth=0

对于全球套餐

npm list  -g --depth=0

答案 7 :(得分:14)

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

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

答案 8 :(得分:14)

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

B

答案 9 :(得分:13)

如果你足够勇敢(并安装了node),你可以随时执行以下操作:

echo "console.log(require('./package.json').version);" | node

这将打印当前包的版本。 您也可以将其修改为疯狂,如下所示:

echo "eval('var result='+require('child_process').execSync('npm version',{encoding:'utf8'})); console.log(result.WHATEVER_PACKAGE_NAME);" | node

这将打印WHATEVER_PACKAGE_NAME包的版本npm version

答案 10 :(得分:13)

如果您同意安装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

答案 11 :(得分:11)

非常简单。只需在行下方输入

npm view < package-name > version

**示例**

npm view redux version

我的版本为Redux 7.2.0

答案 12 :(得分:11)

要在本地或全局查看所有已安装的软件包,请使用以下命令:

  1. npm list用于本地软件包,npm list -g用于全局安装的软件包。
  2. npm list --depth=0
  3. npm list | sls <package name>
  4. node -v

答案 13 :(得分:9)

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

我们假设我的grunt模块版本是0.4.5:

Will-Change: initial;

答案 14 :(得分:8)

尝试:

npm list --depth 1 --global packagename

答案 15 :(得分:8)

我已经构建了一个完全符合要求的工具 - qnm

qnm - 用于查询node_modules目录的简单CLI实用程序。

使用以下方式安装:

npm i --global qnm

并运行:

qnm [module]

例如:

> qnm lodash

lodash
├── 4.17.5
├─┬ cli-table2
│ └── 3.10.1
└─┬ karma
  └── 3.10.1

这意味着我们在lodash的根目录中安装了node_modules,在node_modulescli-table2的{​​{1}}中安装了另外两个副本。

它非常快,并且有一些不错的功能,如标签完成和匹配搜索。

答案 16 :(得分:6)

这是一个可移植的Unix(使用sedg)one-liner,它返回全局安装的npm包的版本字符串(从-pg中删除$ 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之间的值,包括在内;
  • Pong命令删除周围的字符。

答案 17 :(得分: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 same thing
       ;;
       *) echo 'Invalid arguments';
       ;;
       esac;
    ;;
    *) echo 'Invalid arguments';
    ;;
    esac;
}
export -f npmv

现在我所要做的就是输入:

  • npmv 的npm版本例如:NPM version is: 4.2.0
  • 本地版本的
  • npmv&lt; package-name&gt; ,例如:0.8.08
  • npmv&lt; package-name&gt; g 表示全球版本,例如:0.8.09
  • npmv&lt; package-name&gt; l 获取最新版本,例如:0.8.10

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

答案 18 :(得分:5)

npm列表软件包名称给出了当前安装的版本

答案 19 :(得分:4)

你可以试试这个: npm show {package} version显示最新的软件包版本。 如果您的软件包已过时,npm outdated将显示版本信息。

答案 20 :(得分:4)

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

npm ls package

示例:

npm ls babel-cli
`-- babel-cli@6.26.0

npm文档说npm -ls

此命令将打印输出到标准输出的所有版本的软件包 以及它们的依赖项都以树状结构安装。

NPM documentation

答案 21 :(得分:2)

我们可以使用 npm查看任意承诺(您的模块名称)-v

答案 22 :(得分:2)

这是一个简单的问题,应该比我上面看到的答案更简单。

要查看已安装的npm软件包及其版本,命令为npm ls --depth=0,默认情况下,它显示本地安装的软件包。要查看全局安装的软件包,请添加-global参数:npm ls --depth=0 -global

--depth=0返回已安装软件包的列表,没有它们的依赖性,这是您大多数时候想要做的。

ls是命令的名称,listls is an alias

答案 23 :(得分:2)

要列出具有版本号的本地软件包,请使用:

  

npm ls --depth = 0

要列出具有版本号的全局软件包,请使用:

  

npm ls -g --depth = 0

答案 24 :(得分:2)

访问package.json

您可以通过以下方式访问软件包的package.jsonbower.json

notepad ./node_modules/:packageName/package.json

这将打开package.json中的notepad version number:packageName包含command中包含的notepad ./node_modules/vue-template-compiler/package.json

例如:

field

祝你好运。

答案 25 :(得分:2)

有一种简单的方法可以做到这一点。 首先,转到所需的位置(package.json 所在的位置)。 并简单地打开 package.json 文件作为文本编辑器。

通过这种方法,您可以在一个地方找到所有模块版本。

package.json 看起来像这样

package.json

{
"name": "raj",
"version": "1.0.0",
"描述": "",
"main": "index.js",
“脚本”:{
"test": "echo "Error: no test specified" && exit 1"
},
"作者": "",
"license": "ISC",
“依赖关系”:{
"bcrypt": "^5.0.1",
"connect-flash": "^0.1.1",
"dotenv": "^10.0.0",
"ejs": "^3.1.6",
"快递": "^4.17.1",
"express-session": "^1.17.2",
"mysql2": "^2.2.5",
"护照": "^0.4.1",
"passport-local": "^1.0.0",
"续集": "^6.6.2",
"socket.io": "^4.1.2"
}
}

因此您可以读取您电脑中的每个已安装的依赖项(模块)
"socket.io": "^4.1.2" 所以 "socket.io" 具有版本 "4.1.2"

答案 26 :(得分:0)

npm-check是一个很好的软件包,可以管理所有与版本系统事件有关的事情,它将显示软件包版本,新版本更新和未使用的版本。

要安装它,只需运行

npm install -g npm-check

只需运行

npm-check

检查屏幕快照,其中显示了有关软件包版本,新版本更新和未使用版本的所有信息。

enter image description here

它也可以在全球范围内使用。 希望这对某人有帮助。

答案 27 :(得分:0)

如果要检查全局安装的特定模块,请在* nix系统上使用:

npm list -g --depth=0 | grep <module_name>

答案 28 :(得分:0)

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

答案 29 :(得分:0)

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

在命令行获取列表

npm ls

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

对于特定的包版本

npm ls <package-name>

例如

npm ls next

它将返回版本

-- next@10.1.3