在我的 Node.js 项目中,我有一个依赖项gulp,该依赖项vinyl-fs具有一个依赖项,该依赖glob-watcher项具有一个依赖项gaze。glob-watcheris version0.0.6的gaze依赖项设置为^0.5.1.
根据这篇文章,^(插入符号)表示接受最新的次要版本。所以我希望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": "gulp@~3.8.10",
"dependencies": {
"vinyl-fs": {
"version": "0.3.13",
"from": "vinyl-fs@^0.3.0",
"dependencies": {
"glob-watcher": {
"version": "0.0.6",
"from": "glob-watcher@^0.0.6",
"dependencies": {
"gaze": {
"version": "0.6.4",
"from": "gaze@^0.5.1"
}
}
}
}
}
}
}
}
}
确实如此,所以gaze安装了我想要的版本,但不幸的是,该配置导致仅安装了这 4 个依赖项。我可以指定我的整个依赖树来解决这个问题,但这是不可取的,特别是因为我只想覆盖那个包。(但根据所谓的行为,似乎甚至不需要覆盖^。)
显然,我也可以cd为该依赖项编写一个 shell 脚本并手动npm install获得我想要的版本,但如果有的话,我宁愿以“正确”的方式执行此操作。
任何帮助将不胜感激。