在我的Node.js的项目,我有具有依赖性vinyl-fs
具有依赖性glob-watcher
具有依赖性gaze
依赖gulp
。 glob-watcher
是版本0.0.6
的gaze
相关性设置为^0.5.1
。NPM嵌套不依赖最新版本
根据this post^
(插入符号)表示接受最新的次要版本。所以我期望glob-watcher
安装gaze
的最新次要版本,在撰写本文时为0.6.4
。但它不,只安装了0.5.1
。
问:为什么?我该如何解决?
我曾尝试加入以下npm-shrinkwrap.json
我的项目的根和运行rm -rf node_modules/ && npm install
:
{
"name": "MyProject",
"version": "0.0.1",
"dependencies": {
"gulp": {
"version": "3.8.11",
"from": "[email protected]~3.8.10",
"dependencies": {
"vinyl-fs": {
"version": "0.3.13",
"from": "[email protected]^0.3.0",
"dependencies": {
"glob-watcher": {
"version": "0.0.6",
"from": "[email protected]^0.0.6",
"dependencies": {
"gaze": {
"version": "0.6.4",
"from": "[email protected]^0.5.1"
}
}
}
}
}
}
}
}
}
这并使它这样安装的gaze
我想要的版本,但遗憾的是该配置的结果只有4依赖关系正在安装。我可以指定我的整个依赖关系树来解决这个问题,但那样做是不可取的,特别是因为我只想重写那个包。 (但它似乎并不像重写甚至应该是必要的,根据^
声称的行为。)
很显然,我也可以写一个shell脚本cd
到依赖和手动npm install
我想要的版本,但我如果有的话,那就做这个“正确”的方式。
任何帮助将不胜感激。
您使用的是什么版本的NPM? – Joe
'npm --version 1.4.28' – Jackson