查找已安装的npm包的版本

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

这会打印npm本身的版本:

npm -v <package-name>

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

npm version <package-name>

这将打印包版本在登记处(即可用的最新版本):

npm view <package-name> version

如何获得安装版本

1860188 次浏览

对于本地包使用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 list --depth=0-返回没有依赖项的所有已安装模块的版本。

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

最后获取Node.js版本:node -v

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

使用

npm info YOUR_PACKAGE version

例如,

npm info grunt version
0.4.5

这是一个可移植的Unix(使用grepsed)单行程序,它返回全局安装的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命令删除周围的字符。

您可以使用npm视图[模块]版本npm信息[模块]版本npm显示[模块]版本npm v[模块]版本来检查已安装的npm模块的版本。

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

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

我只是用

npm list | grep <package name>

而且效果很好。

在Windows上,运行:

npm list | find <package name>

PowerShell运行:

npm list | sls <package name>

试试:

npm list --depth 1 --global packagename

如果你足够勇敢(并且安装了Node.js),你总是可以这样做:

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所看到的版本。

从包的根开始:

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

(所以你需要cd进入模块的主目录,如果你还没有在那里。如果你用npm install安装了模块,那么它将在node_modules/<module_name>下。)

访问package.json文件

您可以使用以下命令访问包的package.jsonbower.json文件:

Windows(安装了notepad):

notepad ./node_modules/vue-template-compiler/package.json`

这将在记事本中打开package.json,其中包含您在命令中包含的资源包名称中的版本号

Mac/Linux:

cat node_modules/prettier/package.json | grep version

这将输出这样的内容:

命令输出截图

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

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

我把它添加到我的. bashrc文件中:

function npmv {case $# in # Number of arguments passed0) v="$(npm -v)" ; # Store output from npm -v in variableecho "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 argumentg) #global| # Syntax to compare bash string to literals="$(npm list --depth=0 -g $1 | grep $1 | cut -d @ -f 2)";echo "$s";;;l) #Latestnpm view $1 version; # 'npm info $1 version' does the same thing;;*) echo 'Invalid arguments';;;esac;;;*) echo 'Invalid arguments';;;esac;}export -f npmv

现在我要做的就是输入:

  • npmv表示npm的版本,例如NPM version is: 4.2.0
  • npmv<包名称>为本地版本,例如0.8.08
  • npmv<包名>g对于全局版本,例如0.8.09
  • npmv<包名>l表示最新版本,例如0.8.10

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

你可以试试这个:npm show {package} version显示最新的包版本。如果你的包过时了,npm outdated会显示它的版本信息。

结合上面的一些答案并产生一个超级简单和超级快速的查找。

从项目根目录运行。不需要cd进入任何文件夹,只需一行:

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

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

npm info <package name> version

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

对于本地包:

npm list --depth=0

对于全球包:

npm list -g --depth=0

我已经构建了一个完全可以做到这一点的工具-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

这意味着我们在node_modules文件夹文件夹的根目录中安装了lodash,在cli-table2karmanode_modules文件夹中安装了另外两个副本。

它非常快,并且具有一些不错的功能,例如选项卡完成和匹配搜索。

这是一个简单的问题,应该有一个比我在以前的答案中看到的更简单的答案。

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

--depth=0返回一个没有依赖项的已安装包列表,这是您大部分时间想要做的事情。

ls是命令的名称,list是一个别名ls

npm list --depth 0是显示所有库版本的命令,但您可以使用npm-check

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

要安装它,只需运行:

npm install -g npm-check

简单地跑

npm-check

检查屏幕截图。它显示了有关包版本、新版本更新和未使用版本的所有信息。

在此输入图片描述

它也适用于全球。试试看。

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

npm ls --depth=0

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

npm ls -g --depth=0

npm list包名给出当前安装的版本

这很简单…只要键入下面的行

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

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

NPM留档

如果您想检查全局安装的特定模块,在类Unix系统上使用:

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

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

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

要在命令行上获取列表,

npm ls

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

对于特定的包版本,

npm ls <package-name>

例如,

npm ls next

它将返回版本

-- next@10.1.3

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

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

package.json看起来像这样

{"name": "raj","version": "1.0.0","description": "","main": "index.js","scripts": {"test": "echo \"Error: no test specified\" && exit 1"},"author": "","license": "ISC","dependencies": {"bcrypt": "^5.0.1","connect-flash": "^0.1.1","dotenv": "^10.0.0","ejs": "^3.1.6","express": "^4.17.1","express-session": "^1.17.2","mysql2": "^2.2.5","passport": "^0.4.1","passport-local": "^1.0.0","sequelize": "^6.6.2","socket.io": "^4.1.2"}}

因此,您可以读取PC中安装的每个依赖项(模块),即"socket.io": "^4.1.2",因此'socket.io'具有版本4.1.2

要获取只有安装的版本号,请尝试:

npm list -g --depth=0 packagename | grep packagename | cut -d'@' -f2

例如,安装的PM2版本号:

npm list -g --depth=0 pm2 | grep pm2 | cut -d'@' -f2

我正在使用

npm list --depth=0 | grep module_name@

它带给我这样的结果:

module_name@2.1033.0

检查你的package.json文件。

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