2
$ meteor list
foo 0.9*
...
$ meteor update foo
Your packages are at their latest compatible versions.

如何判断哪个包具有停止foo更新的依赖项?

4

1 回答 1

5

没有什么是一个小脚本不能为我们做的:

meteor list | grep ^[a-z] | tr -s ' ' | cut -d ' ' -f1,2 | tr -d '\*\+' | tr ':' '_' \
| while read X Y; do \
     cat ~/.meteor/packages/$X/$Y/web.browser.json \
     | xargs -0 node -e "X = JSON.parse(process.argv[1]); \
           X.uses.forEach(function(d) { \
               console.log(\"$X\", \"$Y\", d.package, d.constraint); \
           })"; \
  done | sort

这将查找您使用的所有包及其版本,然后进入包存储以检查依赖关系。在这种形式中,它只是列出了按依赖项排序的它们,因此例如您可能会看到:

ryw_blog 0.5.7 iron:router 0.9.1

这意味着您使用的是 ryw_blog 0.5.7 版,它需要 0.9.1 版的 iron:router。

如果您真的只想检查 foo,只需| grep foo在排序后添加一个。

当然,这是假设您不在 Windows 上。我在 osx 上对此进行了测试,但 linux 也应该可以工作。

PS:这似乎很有用,所以我从中创建了一个要点:https ://gist.github.com/chfritz/63dbf792d22563e5d0c0

于 2015-08-04T03:51:56.323 回答