背景
我似乎无法让npm-shrinkwrap工作。我目前正在使用一个名为leaflet.zoomslider的传单插件,该插件依赖于传单0.7.7。我正在尝试升级我的应用程序以使用leafet@1.0.3。由于zoomslider引入0.7.7并且我正在导入传单1.0.3,所以两个库都被导入(最终0.7.7将导入最后,在我的情况下将胜过1.0.3)
zoomslider似乎可以正常使用1.0.3并且我已经向库所有者提交了一个错误来更新他们的package.json文件。
问题
经过一些谷歌搜索后,我找到了npm-shrinkwrap。我执行了以下
npm install -g npm-shrinkwrap
npm install
npm shrinkwrap
这成功创建了我的npm-shrinkwrap.json文件。为了强制传单的瞬态依赖为1.0.3我手动编辑了我的npm-shrinkwrap.json文件
leaflet.zoomslider: {
version: 0.7.0,
from: leaflet.zoomslider@0.7.0,
resolved: ...
dependencies: {
leaflet: {
version: 1.0.3
from: leaflet@1.0.3,
resolved: ......
}
}
}
我删除了我的node_modules文件夹,再次安装了npm并注意到我的应用程序仍然带有0.7.7和1.0.3小册子。事实上,我删除了我的node_modules文件夹,并在npm-shrinkwrap.json文件中提供了zoomslider和瞬态leaflet依赖关系伪造版本号,并且npm安装成功完成且没有错误。
有什么想法吗?