如何查找已安装的node.js / npm 包的版本?
这将打印npm本身的版本:
npm -v <package-name>
这会打印出一个神秘的错误:
npm version <package-name>
这将在注册表上打印软件包版本(即可用的最新版本):
npm view <package-name> version
如何获得已安装的版本?
答案 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)
要在本地或全局查看所有已安装的软件包,请使用以下命令:
npm list
用于本地软件包,npm list -g
用于全局安装的软件包。npm list --depth=0
npm list | sls <package name>
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
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_modules
和cli-table2
的{{1}}中安装了另外两个副本。
它非常快,并且有一些不错的功能,如标签完成和匹配搜索。
答案 16 :(得分:6)
这是一个可移植的Unix(使用sed
和g
)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
现在我所要做的就是输入:
NPM version is: 4.2.0
0.8.08
0.8.09
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
此命令将打印输出到标准输出的所有版本的软件包 以及它们的依赖项都以树状结构安装。
答案 21 :(得分:2)
我们可以使用 npm查看任意承诺(您的模块名称)-v
答案 22 :(得分:2)
这是一个简单的问题,应该比我上面看到的答案更简单。
要查看已安装的npm软件包及其版本,命令为npm ls --depth=0
,默认情况下,它显示本地安装的软件包。要查看全局安装的软件包,请添加-global
参数:npm ls --depth=0 -global
。
--depth=0
返回已安装软件包的列表,没有它们的依赖性,这是您大多数时候想要做的。
ls
是命令的名称,list
是ls
is an alias。
答案 23 :(得分:2)
要列出具有版本号的本地软件包,请使用:
npm ls --depth = 0
要列出具有版本号的全局软件包,请使用:
npm ls -g --depth = 0
答案 24 :(得分:2)
package.json
您可以通过以下方式访问软件包的package.json
或bower.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
检查屏幕快照,其中显示了有关软件包版本,新版本更新和未使用版本的所有信息。
它也可以在全球范围内使用。 希望这对某人有帮助。
答案 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