Lau*_*dou 2037 package node.js npm
如何找到已安装的node.js/npm 包的版本?
这将打印npm本身的版本:
npm -v <package-name>
Run Code Online (Sandbox Code Playgroud)
这打印出一个神秘的错误:
npm version <package-name>
Run Code Online (Sandbox Code Playgroud)
这将在注册表上打印包版本(即可用的最新版本):
npm view <package-name> version
Run Code Online (Sandbox Code Playgroud)
我如何获得已安装的版本?
The*_*ppo 2412
npm list用于本地软件包或npm list -g全局安装的软件包.
您可以通过将其名称作为参数来查找特定包的版本.例如,npm list grunt将导致:
projectName@projectVersion /path/to/project/folder
??? grunt@0.4.1
Run Code Online (Sandbox Code Playgroud)
或者,您可以在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
Run Code Online (Sandbox Code Playgroud)
Pat*_*ger 829
另一种快速查找本地安装的软件包并且没有依赖关系的方法是使用:
npm list --depth=0
Run Code Online (Sandbox Code Playgroud)
这给你一些类似的东西
??? 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
Run Code Online (Sandbox Code Playgroud)
显然,同样可以在全球范围内完成npm list -g --depth=0.
如果您安装了很多软件包,这种方法会更加清晰.
要找出需要更新的软件包,您可以使用npm outdated -g --depth=0.
Sal*_*ali 201
npm view <package> version - 返回包装上的最新可用版本.
npm list --depth=0 - 返回所有已安装模块的版本,没有依赖项.
npm list - 返回所有模块和依赖项的版本.
最后得到节点版本: node -v
Dav*_*ith 75
npm info YOUR_PACKAGE version
Run Code Online (Sandbox Code Playgroud)
例如
npm info grunt version
0.4.5
Run Code Online (Sandbox Code Playgroud)
chr*_*age 55
我刚刚使用过
__CODE__
,效果很好
在Windows上运行:
__CODE__
在PowerShell中运行:
__CODE__
Fer*_*gie 47
从包的根目录做:
node -p "require('./package.json').version"
Run Code Online (Sandbox Code Playgroud)
编辑 :(所以你需要cd进入模块的主目录,如果你还没有.如果你已经安装了模块npm install,那么它将在下面node_modules/<module_name>)
编辑2:根据@ jeff-dickey的回答更新
Sno*_*now 34
您可以查看文件package.json以查看已安装的软件包版本。
要在命令行上获取列表,
npm ls
Run Code Online (Sandbox Code Playgroud)
它将为您提供项目中所有已安装的软件包及其各自的版本。
对于特定的软件包版本,
npm ls <package-name>
Run Code Online (Sandbox Code Playgroud)
例如,
npm ls next
Run Code Online (Sandbox Code Playgroud)
它将返回版本
-- next@10.1.3
Run Code Online (Sandbox Code Playgroud)
Far*_*een 19
对于本地包裹
npm list --depth=0
Run Code Online (Sandbox Code Playgroud)
对于全球包
npm list -g --depth=0
Run Code Online (Sandbox Code Playgroud)
小智 17
npm view <package-name> version
Run Code Online (Sandbox Code Playgroud)
npm view redux version
Run Code Online (Sandbox Code Playgroud)
我有 7.2.0 版的 redux
Jos*_*vid 15
结合上面的一些答案,产生一个超级简单和超快速的查找.
从项目根目录运行.无需cd进入任何文件夹,只需1行:
node -p "require('SOMEPACKAGE/package.json').version"
Ben*_*hon 13
如果您同意安装jq,则可以使用JSON输出npm list.
npm -j ls <package-name> | jq -r .version
Run Code Online (Sandbox Code Playgroud)
或者,如果你想要冗长
npm --json list <package-name> | jq --raw-output '.version'
Run Code Online (Sandbox Code Playgroud)
例如:
$ npm -j ls ghost | jq -r .version
0.4.2
Run Code Online (Sandbox Code Playgroud)
此外,JSON格式对于全局包略有不同,因此您需要更改查询.
例如:
$ npm -j -g ls | jq -r .dependencies.ghost.version
0.4.2
Run Code Online (Sandbox Code Playgroud)
小智 13
如果你足够勇敢(并且已经node安装),你总是可以这样做:
echo "console.log(require('./package.json').version);" | node
Run Code Online (Sandbox Code Playgroud)
这将打印当前包的版本.你也可以修改它疯了,像这样:
echo "eval('var result='+require('child_process').execSync('npm version',{encoding:'utf8'})); console.log(result.WHATEVER_PACKAGE_NAME);" | node
Run Code Online (Sandbox Code Playgroud)
这将打印WHATEVER_PACKAGE_NAME包的版本,可以看到npm version.
小智 11
要在本地或全局查看所有已安装的软件包,请使用以下命令:
npm list用于本地软件包或npm list -g全局安装的软件包.npm list --depth=0npm list | sls <package name>node -vMah*_*tap 11
npm list --depth 0 是显示所有带有版本的库的命令,但您可以使用 npm-check
npm-check 是一个很好的库,可以管理所有与版本系统事件相关的事情,它将显示库版本、新版本更新和未使用的版本等等。
安装它只需运行
npm install -g npm-check
Run Code Online (Sandbox Code Playgroud)
并简单地运行
npm-check
Run Code Online (Sandbox Code Playgroud)
检查屏幕截图,它显示了有关软件包版本、新版本更新和未使用版本的所有信息。
它也适用于全球。试一试。希望这有助于某人。
我已经构建了一个完全正确的工具 - qnm
node_modules目录的简单CLI实用程序.安装使用:
npm i --global qnm
Run Code Online (Sandbox Code Playgroud)
并运行:
qnm [module]
Run Code Online (Sandbox Code Playgroud)
例如:
> qnm lodash
lodash
??? 4.17.5
??? cli-table2
? ??? 3.10.1
??? karma
??? 3.10.1
Run Code Online (Sandbox Code Playgroud)
这意味着我们必须lodash安装的根node_modules,并在另外两个副本node_modules中cli-table2和karma.
它非常快,并且具有一些很好的功能,如标签完成和匹配搜索.
您可以使用npm view [module]版本,npm info [module]版本,npm show [module]版本或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
Run Code Online (Sandbox Code Playgroud)
这是一个可移植的Unix(使用grep和sed)单行程序,它返回全局安装的npm包的版本字符串(删除gfrom -pg来查询本地包):
$ npm ll -pg --depth=0 grunt | grep -o "@.*:" | sed 's/.$//; s/^.//'
0.4.5
Run Code Online (Sandbox Code Playgroud)
npm ll可解析的串格式化像输出:/usr/lib/node_modules/npm:npm@2.14.8:;grep命令提取之间的值@和:,包括端值;sed命令删除周围的字符.我把它添加到我的.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
Run Code Online (Sandbox Code Playgroud)
现在我所要做的就是键入:
NPM version is: 4.2.00.8.08 0.8.09 0.8.10 注意-d on cut命令表示分隔符,后跟@,然后f表示字段2表示第二个字段,因为@符号的任一侧都有.
我看到了一些非常有创意的答案,但你可以这样做(对于全局包添加 --global 开关):
npm ls package
Run Code Online (Sandbox Code Playgroud)
例子:
npm ls babel-cli
`-- babel-cli@6.26.0
Run Code Online (Sandbox Code Playgroud)
npm 文档说 npm -ls
此命令将以树状结构将已安装软件包的所有版本及其依赖项打印到标准输出。
小智 6
如果您想检查全局安装的特定模块,请在类 Unix 系统上使用:
npm list -g --depth=0 | grep <module_name>
Run Code Online (Sandbox Code Playgroud)
您可以尝试这样:
npm show {package} version显示最新的软件包版本.如果您的软件包已过时,npm outdated将显示版本信息.
小智 5
要仅获取已安装的版本号,请尝试:
npm list --depth=0 packagename | grep packagename | cut -d'@' -f2
Run Code Online (Sandbox Code Playgroud)
例如,PM2安装的版本号:
npm list --depth=0 packagename | grep packagename | cut -d'@' -f2
Run Code Online (Sandbox Code Playgroud)
要列出全局安装的软件包,请将-g标志添加到npm list命令中,例如:
npm list -g --depth=0 packagename | grep packagename | cut -d'@' -f2
Run Code Online (Sandbox Code Playgroud)