2015-04-28 123 views
0

在我的Node.js的项目,我有具有依赖性vinyl-fs具有依赖性glob-watcher具有依赖性gaze依赖gulpglob-watcher是版本0.0.6gaze相关性设置为^0.5.1NPM嵌套不依赖最新版本

根据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我想要的版本,但我如果有的话,那就做这个“正确”的方式。

任何帮助将不胜感激。

+0

您使用的是什么版本的NPM? – Joe

+0

'npm --version 1.4.28' – Jackson

回答

0

为什么?

很简单:凝视的最新版本刚刚没有npm publish编着呢,仍然在0.5.1版本上npm repo

我该如何解决这个问题?

你有点scr ***。该解决方案是使用一个npm install [githubtarball] --save,但你不想手动编辑依赖的的package.json,你吨希望到餐桌水珠观察家乙烯基FS一饮而尽

编辑:可能使用此URL https://github.com/shama/gaze/tarball/v0.6.4在拆封会工作。