提问人:Laurent Couvidou 提问时间:6/11/2012 最后编辑:Peter MortensenLaurent Couvidou 更新时间:9/1/2023 访问量:2099537
查找已安装的 npm 包的版本
Find the version of an installed npm package
问:
如何找到已安装的 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
└── [email protected]
或者,您可以不将包名称作为参数传递来运行,以查看所有包的版本:npm list
├─┬ [email protected]
│ └── [email protected]
├── [email protected]
├── [email protected]
├─┬ [email protected]
│ ├── [email protected]
│ └── [email protected]
└── [email protected]
您还可以添加参数以列出没有依赖项的已安装包。--depth=0
评论
npm list less-middleware
| select-string module_name
grep
list
npm ls
npm ls
npm list
npm lis
npm ll
--depth=0
npm list -g | awk -F@ '/<package>/ { print $2}'
找出哪些包安装在本地且没有依赖项的另一种快速方法是使用:
npm list --depth=0
这给了你类似的东西
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]
显然,同样的事情也可以全局完成。npm list -g --depth=0
如果您安装了很多软件包,则此方法更清晰。
要找出需要更新的软件包,可以使用 .npm outdated -g --depth=0
评论
| grep <package_name>
--depth=0
npm list -g --depth=0
对于全局安装的列表模块
npm view <package> version
- 返回包上的最新可用版本。
npm list --depth=0
- 返回所有已安装模块的版本,不带依赖项。
npm list
- 返回所有模块和依赖项的版本。
最后获取 Node.js 版本:node -v
评论
npm view <package> versions
如果您同意安装 jq,则可以使用 JSON 输出:npm list
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
评论
npm info
npm view
npm info YOUR_PACKAGE version
唯一有效的:)
下面是一个可移植的 Unix (using and ) 单行代码,它返回全局安装的 npm 包的版本字符串(改为删除 from to query 本地包):grep
sed
g
-pg
npm ll -pg --depth=0 grunt | grep -o "@.*:" | sed 's/.$//; s/^.//'
输出:
0.4.5
- 输出一个可解析的字符串,格式如下:
npm ll
/usr/lib/node_modules/npm:[email protected]:
; - 该命令提取介于 和 之间的值,包括 和 ;
grep
@
:
- 该命令将删除周围的字符。
sed
评论
| grep -o "@.*" | sed 's/^.//'
您可以使用 npm view [module] version、npm info [module] version、npm show [module] version 或 npm v [module] version 来检查已安装的 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
评论
我刚刚用过
npm list | grep <package name>
效果很好。
在 Windows 上,运行:
npm list | find <package name>
在 PowerShell 中运行:
npm list | sls <package name>
评论
find
版本对我不起作用 - 即使使用带引号的字符串,但 PowerShell 运行良好
npm list -g --depth=0 |find "<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 -e "console.log(require('./package.json').version);"
从包的根目录执行以下操作:
node -p "require('./package.json').version"
(因此,如果您还没有进入模块的主目录,则需要进入该目录。如果您已使用 安装了该模块,则它将位于 下。cd
npm install
node_modules/<module_name>
评论
node -p "require('./package.json').version"
访问 package.json 文件
您可以使用以下命令访问包的 package.json 或 bower.json 文件:
Windows(已安装):notepad
notepad ./node_modules/vue-template-compiler/package.json`
这将在记事本中打开,其中包含命令中包含的 packageName 的版本号。package.json
Mac/Linux系统:
cat node_modules/prettier/package.json | grep version
这将输出如下内容:
评论
若要在本地或全局查看所有已安装的软件包,请使用以下命令:
npm list
用于本地包或全局安装的包。npm list -g
npm list --depth=0
npm list | sls <package name>
node -v
我将其添加到我的 .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
现在我所要做的就是输入:
- npmv 表示 npm 的版本,例如,
NPM version is: 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 表示 delimited by,后跟 @,然后 f 表示字段。“2”表示第二个字段,因为 @ 符号的两侧各有一个。
您可以尝试以下操作: 显示最新的软件包版本。
如果您的软件包已过时,将显示它与版本信息。npm show {package} version
npm outdated
评论
结合上述一些答案,产生一个超级简单和超级快速的查找。
从项目根目录运行。无需进入任何文件夹,只需一行:cd
node -p "require('SOMEPACKAGE/package.json').version"
评论
您还可以使用以下命令检查版本:
npm info <package name> version
评论
我们可以使用
npm info(模块名称)版本
评论
npm list --depth=0 | grep uuid | awk '{ print $2; }' | cut -d '@' -f 2
对于本地软件包:
npm list --depth=0
对于全球包裹:
npm list -g --depth=0
我构建了一个可以做到这一点的工具 - qnm。
qnm - 用于查询目录的简单 CLI 实用程序。node_modules
使用以下方法安装它:
npm i --global qnm
然后运行:
qnm [module]
例如:
qnm lodash
输出:
lodash
├── 4.17.5
├─┬ cli-table2
│ └── 3.10.1
└─┬ karma
└── 3.10.1
这意味着我们已经在 node_modules 文件夹文件夹的根目录中安装了另外两个副本,并在 和 的 node_modules文件夹中安装了另外两个副本。lodash
cli-table2
karma
它的速度非常快,并且具有一些不错的功能,例如 Tab 自动补全和匹配搜索。
这是一个简单的问题,应该有一个比我在以前的答案中看到的更简单的答案。
要查看已安装的 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 package-name 给出当前安装的版本
警告:此答案显示 npm 中模块的最新可用版本,而不是本地当前安装的版本。
这很简单。.只需输入以下行
npm view <package-name> version
例
npm view redux version
我有 Redux 的 7.2.0 版本。
评论
我看到了一些非常有创意的答案,但你可以这样做(对于全局包,添加 --global 开关):
npm ls package
例:
npm ls babel-cli
输出:
`-- [email protected]
npm 文档说 npm -ls
此命令将打印到 stdout 所有包的版本 以及它们的依赖项安装在树结构中。
评论
如果要检查全局安装的特定模块,请在类 Unix 系统上使用:
npm list -g --depth=0 | grep <module_name>
您还可以在文本编辑器中手动查看package.json文件,以查看哪些包是依赖项。如果不能作为手动替代方法,请使用它。npm list
您可以查看文件package.json以查看已安装的软件包版本。
若要在命令行上获取列表,请执行以下操作:
npm ls
它将为您提供项目中所有已安装的软件包及其各自的版本。
对于特定的包版本,
npm ls <package-name>
例如
npm ls next
它将返回版本
-- [email protected]
有一种简单的方法可以做到这一点。
首先,转到所需的位置(所在的位置)。
只需将文件作为文本编辑器打开即可。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 --depth=0 packagename | grep packagename | cut -d'@' -f2
例如,PM2 的安装版本号:
npm list --depth=0 pm2 | grep pm2 | cut -d'@' -f2
要列出全局安装的软件包,请在命令中添加标志,例如:-g
npm list
npm list -g --depth=0 packagename | grep packagename | cut -d'@' -f2
评论
-f3
-f2
我正在使用
npm list --depth=0 | grep module_name@
它给我带来了这样的结果:
[email protected]
只需检查您的 package.json 文件即可。
"dependencies": {
"ajv": "^8.9.0",
"ajv-keywords": "^5.1.0",
"fastify": "^3.27.0"
评论
npm 列表 npm list '包名称' npm show 'package name' 版本
查找特定节点模块版本的另一种方法是在文件夹中找到它node_modules并找到“version”值。不是在整个应用程序中,而是在模块自己的应用程序中。
例如,需要知道安装的软件包的版本。然后应该在 中打开该文件夹。它将在文件夹内。然后应该在记事本中打开它。然后在其中找到价值。package.json
package.json
package.json
foo
foo
node_modules
package.json
foo
package.json
"version"
评论
npm show
显示 npm 中的最新内容,未安装npm pkg get version