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 <package-name> 为本地版本,例如: 0.8.08 全球版
npmv <package-name> g 例如: 0.8.09
npmv <package-name> l 最新版本,例如: 0.8.10
注意-d on cut命令表示分隔符,后跟@,然后f表示字段2表示第二个字段,因为@符号的任一侧都有 .
12
您也可以通过此命令检查版本 .
npm info <package name > version
6
这是一个可移植的Unix(使用 grep 和 sed )单行,返回全局安装的npm包的版本字符串(从 -pg 删除 g 以查询本地包):
20 回答
要在本地或全局查看所有已安装的软件包,请使用以下命令:
npm list
用于本地软件包,npm list -g
用于全局安装的软件包 .npm list --depth=0
npm list | sls <package name>
node -v
我刚刚使用了
npm list | grep <package name>
,效果很好在Windows上运行:
npm list | find <package name>
在PowerShell中运行:
npm list | sls <package name>
npm list
用于本地软件包,npm list -g
用于全局安装的软件包 .您可以通过将其名称作为参数来查找特定包的版本 . 例如,
npm list grunt
将导致:或者,您可以运行
npm list
而不传递包名作为参数,以查看所有包的版本:我把它添加到我的.bashrc中
现在我所要做的就是键入:
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
注意-d on cut命令表示分隔符,后跟@,然后f表示字段2表示第二个字段,因为@符号的任一侧都有 .
您也可以通过此命令检查版本 .
npm info <package name > version
这是一个可移植的Unix(使用
grep
和sed
)单行,返回全局安装的npm包的版本字符串(从-pg
删除g
以查询本地包):npm ll
输出一个可解析的字符串,格式为:/usr/lib/node_modules/npm:npm@2.14.8:
;grep
命令提取@
和:
之间的值,包括在内;sed
命令删除周围的字符 .结合上面的一些答案,产生一个超级简单和超快速的查找 .
从项目根目录运行 . 无需
cd
进入任何文件夹,只需1行:node -p "require('SOMEPACKAGE/package.json').version"
试试:
我已经构建了一个完全相同的工具 - qnm
qnm - 一个用于查询node_modules目录的简单CLI实用程序 .
安装使用:
并运行:
例如:
这意味着我们在
node_modules
的根目录中安装了lodash
,在cli-table2
和karma
的node_modules
中安装了另外两个副本 .它非常快,并且有一些很好的功能,如标签完成和匹配搜索 .
例如
如果你足够勇敢(并且安装了
node
),你总是可以这样做:这将打印当前包的版本 . 你也可以修改它疯了,像这样:
这将打印
WHATEVER_PACKAGE_NAME
包的版本,npm version
可以看到 .您可以尝试这样做:
npm show {package} version
显示最新的软件包版本 . 如果您的软件包已过时,npm outdated
将显示版本信息 .我们可以使用 npm view any-promise (您的模块名称)-v
npm view <package> version
- 返回包中的最新可用版本 .npm list --depth=0
- 返回所有已安装模块的版本,没有依赖项 .npm list
- 返回所有模块和依赖项的版本 .最后得到节点版本:
node -v
如果您同意安装jq,则可以使用
npm list
的JSON输出 .或者,如果你想要冗长
例如:
此外,JSON格式对于全局包略有不同,因此您需要更改查询 .
例如:
从包的根目录做:
EDIT :(所以你需要
cd
进入模块的主目录,如果你还没有 . 如果你已经用npm install
安装了模块,那么它将在node_modules/<module_name>
下)EDIT 2 :根据@ jeff-dickey的回答更新
访问package.json
您可以使用以下命令访问包的
package.json
或bower.json
:notepad ./node_modules/:packageName/package.json
这将在
notepad
中打开package.json
,其中包含command
中:packageName
的version number
.例如:
notepad ./node_modules/vue-template-compiler/package.json
祝好运 .
对于本地包裹
对于全球包
找出 locally 和 without their dependencies 安装的软件包的另一种快速方法是使用:
这给你一些类似的东西
显然,使用
npm list -g --depth=0
可以在全球范围内完成相同的操作 .如果您安装了很多软件包,这种方法会更加清晰 .
要找出需要更新的软件包,可以使用
npm outdated -g --depth=0
.您可以使用npm view [module]版本,npm info [module]版本,npm show [module]版本或npm v [module]版本来检查已安装的npm模块上的版本 .
我们假设我的grunt模块版本是0.4.5: