我对grunt比较陌生,对节点还不是很熟悉。我有一个样板文件Gruntfile和package.json文件,我在我的所有项目中使用它并根据需要进行修改。当我启动每个项目时,我想更新Dev Dependencies和package.json中的所有Grunt插件,但我不知道一种快速简便的方法。是否可以使用一个命令更新所有模块,还是必须单独执行?
答案 0 :(得分:18)
在package.json
中,您可以使用一系列要安装的版本标记每个依赖项,然后键入npm install
以在给定版本中安装所有列出的依赖项:
仅安装0.6.0
:
{
"devDependencies": {
"grunt-contrib-watch": "0.6.0"
}
}
使用~
的前缀安装最新的修补程序版本0.6.x
:
在0.6.1
,0.6.2
,0.6.3
等版本发布后,npm install
将安装最新版本的版本。如果0.7.0
发布,它将不会安装该版本(通常是一个好的策略,因为它可能包含重大更改)。
{
"devDependencies": {
"grunt-contrib-watch": "~0.6.0"
}
}
明确设置范围:
您可以使用>
,<
,<=
,>=
来明确设置版本范围。自定义范围的另一个好选择,或者您希望明确版本范围。以下内容将安装大于或等于0.6.0
但小于1.0.0
的每个版本:
{
"devDependencies": {
"grunt-contrib-watch": ">= 0.6.0 < 1.0.0"
}
}
始终使用*
安装最新版本
或者,如果您只是想要使用最新版本,请使用*
:
{
"devDependencies": {
"grunt-contrib-watch": "*"
}
}
在npm文档中详细了解版本范围:https://www.npmjs.org/doc/misc/semver.html
<强> npm outdated
强>
如果您想查看哪些依赖项已过期,请使用npm outdated
:https://www.npmjs.org/doc/cli/npm-outdated.html
<强> npm update
强>
使用npm update
将所有依赖项更新为最新版本。或npm update packagename anotherpackage
将特定软件包更新为最新版本。
答案 1 :(得分:0)
grunt-dev-update插件 - 是我的选择。
这个答案与2018年2月有关。将来,这个答案的数据可能已经过时了。
本回答的作者于2018年2月亲自使用此插件。
为什么不使用
npm update
或npm install
?首先 -
npm update
不适用于dev依赖项,
第二个 -npm update
保留在您的package.json
中的semver匹配中 第三,npm不像你的咕噜声任务那样自动化。
official plugin description中描述了安装,使用说明和选项。
奇怪的选项名称;起初我不明白,options.semver
是什么。
示例配置:
Package name : autoprefixer
Package type : devDependencies
Current version : 6.7.7
Wanted version : 6.7.7
Latest version : 8.0.0
Package name : browser-sync
Package type : devDependencies
Current version : 2.23.5
Wanted version : 2.23.6
Latest version : 2.23.6
您在控制台中运行grunt devUpdate
:
如果 semver: true
:
autoprefixer not update,浏览器同步更新。
elif semver: false
:
autoprefixer 和浏览器同步更新。