在我的Node.js项目中,我有一个依赖项gulp
,它具有依赖项vinyl-fs
,它具有依赖项glob-watcher
,它具有依赖项gaze
。 glob-watcher
版本0.0.6
的{{1}}依赖关系设置为gaze
。
根据this post ^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"
}
}
}
}
}
}
}
}
}
版本,但不幸的是,配置只导致安装了4个依赖项。我可以指定我的整个依赖树来修复它,但这是不可取的,特别是因为我只想覆盖那个包。 (但根据gaze
所声称的行为,它看起来似乎不应该是必要的。)
显然我也可以向^
写一个shell脚本到该依赖项并手动cd
我想要的版本,但是我宁愿这样做"对"方式,如果有的话。
非常感谢任何帮助。
答案 0 :(得分:0)
为什么?
非常简单: gaze 的最新版本尚未npm publish
编辑,仍然在https://github.com/r0man/cljs-http上的版本0.5.1
我该如何解决这个问题?
你有点儿。解决方案是使用npm install [githubtarball] --save
,但您不想手动编辑依赖项的 package.json ,并且您想要分叉 glob-watcher , vinyl-fs 和 gulp 。
编辑:也许在shrinkwrap中使用此网址 npm repo 会有效。