在我继承的项目中,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"
]
}
当我第一次得到它时,lodash
为~2.4.1
而我正在尝试将其更新为3.10.1
(如上所示)。但是,npm
继续在顶级安装2.4.1
(尽管package.json
请求更新的版本)并且它不会安装请求的版本2.4.1
或{{1在某些依赖项中(如2.4.2
和assemble
)。因此,当我cheerio
抱怨未满足的依赖关系时。
我尝试以不同的顺序和组合删除npm install lodash@3.10.1
和node_modules
以及npm clear cache
,但没有任何变化。
如何在所有依赖项中的rm -rf $HOME/.npm
安装lodash@3.10.1
以及lodash
的请求版本(并且没有依赖项使用{{1}的顶级副本} - 我认为这是lodash
工作的正常方式?
优选地,解决方案不需要将所有依赖性更新为新版本(假设甚至可能)。这可能是一个解决方案,但这需要更多的验证,以确保没有任何破坏。