NPM安装旧版本并不完全安装recursion依赖项

在我inheritance的项目中,packages.json大致如下所示:

{ "name": "...", "version": "...", "description": "", "author": "...", "license": "ISC", "dependencies": { "lodash": "^3.10.1", "assemble": "^0.4.37", "cheerio": "^0.16.0", "grunt": "^0.4.4", "grunt-build-control": "^0.1.3", }, "keywords": [ "handlebars-helper-md", "handlebars-helper-rel" ] } 

当我第一次得到它时, lodashlodash ,我试图将它更新到3.10.1 (如上所示)。 然而, npm继续在顶层安装2.4.1 (尽pipepackage.json请求较新的版本),并且它不会在一些依赖中安装所请求的版本2.4.12.4.2 (比如assemblecheerio )。 因此当我npm install lodash@3.10.1它抱怨未满足的依赖关系。

我试过以不同的顺序和组合来删除node_modulesnpm clear cacherm -rf $HOME/.npm ,没有任何改变。

我如何得到lodash@3.10.1安装在所有依赖关系的顶层和请求版本的lodash (而不是依赖使用lodash的顶层副本 – 我认为这是正常的方式npm工作)?

优选地,解决scheme不需要将所有依赖关系更新为新版本(假设甚至是可能的)。 这可能是一个解决scheme,但这将需要更多的validation,以确保没有任何破坏。