从0.9.3开始,我遇到了meteor包依赖的一些问题,例如某些第三方包没有声明它们的所有依赖关系(如下划线,通常包含但不包含在另一个包中)。
是否有一种简单的方法来显示依赖树,就像npm一样?
流星列表 将显示项目中的内容.meteor / versions将显示所有包 但我正在试图找出包含(或不包括)其他包裹的内容。
目前我收到如下错误,但未包括Minimongoid afaik并且grepping没有找到它的参考。
W20141001-19:19:46.137(-7)? (STDERR) /Users/dc/.meteor/packages/meteor-tool/.1.0.33.he3qxx++os.osx.x86_64+web.browser+web.cordova/meteor-tool-os.osx.x86_64/dev_bundle/lib/node_modules/fibers/future.js:173
W20141001-19:19:46.137(-7)? (STDERR) throw(ex);
W20141001-19:19:46.138(-7)? (STDERR) ^
W20141001-19:19:46.141(-7)? (STDERR) ReferenceError: Minimongoid is not defined
W20141001-19:19:46.141(-7)? (STDERR) at collections/user.coffee:1:20
W20141001-19:19:46.141(-7)? (STDERR) at /Users/dc/dev/shumi/package-dev/app/.meteor/local/build/programs/server/app/collections/user.coffee.js:24:3
W20141001-19:19:46.142(-7)? (STDERR) at /Users/dc/dev/shumi/package-dev/app/.meteor/local/build/programs/server/boot.js:168:10
W20141001-19:19:46.142(-7)? (STDERR) at Array.forEach (native)
W20141001-19:19:46.142(-7)? (STDERR) at Function._.each._.forEach (/Users/dc/.meteor/packages/meteor-tool/.1.0.33.he3qxx++os.osx.x86_64+web.browser+web.cordova/meteor-tool-os.osx.x86_64/dev_bundle/lib/node_modules/underscore/underscore.js:79:11)
W20141001-19:19:46.142(-7)? (STDERR) at /Users/dc/dev/shumi/package-dev/app/.meteor/local/build/programs/server/boot.js:82:5
答案 0 :(得分:36)
虽然我们正在等待官方工具拥有此功能,但这里是丑陋的版本:
def ledger
super || begin
ledger = create_ledger(description: "#{name} Ledger")
update_column(:ledger_id, ledger.id)
ledger
end
end
这将显示所有添加的包的依赖关系。它解析for p in `meteor list | grep '^[a-z]' | awk '{ print $1"@"$2 }'`; do echo "$p"; meteor show "$p" | grep -E '^ [a-z]'; echo; done
和meteor list
的输出,并在任何变化时中断。
答案 1 :(得分:6)
从Meteor v1.5.2(released 2017-09-05)开始,您现在可以看到完整的依赖关系树,如下所示:
meteor list --tree
这是输出的样子:
$ meteor list --tree
accounts-password@1.4.0
├─┬ accounts-base@1.3.4
│ ├─┬ callback-hook@1.0.10
│ │ └── underscore@1.0.10
│ ├── check@1.2.5 (top level)
│ ├─┬ ddp@1.3.1
│ │ ├─┬ ddp-client@2.1.3
│ │ │ ├── callback-hook@1.0.10 (expanded above)
│ │ │ ├── check@1.2.5 (top level)
│ │ │ ├─┬ ddp-common@1.2.9
拉取请求由sdarnel提供,可以在此处找到感兴趣的人: https://github.com/meteor/meteor/pull/8936
答案 2 :(得分:3)
这就是我所做的......
我运行meteor list
,并将输出复制到记事本,以便稍后再参考。
然后,我走下整个列表,输入:meteor show <package>
查看输出:Implies: whatever
...这是告诉您特定包包含内容的部分。基本上,输出的部分表示&#34;意味着:某些&#34;,这些是您为meteor show <package>
运行的包的依赖关系。
然后......如果你带着包裹进入&#34;意味着:foopackage&#34;并且运行&#34; meteor show foopackage&#34;这会告诉你 依赖关系的依赖。
基本上,这是对这个问题的粗略解决方案,没有正式的解决方案/功能/命令。
祝你好运。 P.S。在我的情况下,我想查看包含iron:router
的内容,并通过上述过程,我确定useraccounts:semantic-ui
包括useraccounts:core
,其中包括iron:router
,meteor list
}(if(filter_var($url, FILTER_VALIDATE_URL) !== false)
中没有!)
有关详细信息,请参阅以下页面:https://github.com/meteor/meteor/issues/2853
答案 3 :(得分:2)
我写了一些code here来构建一个包树,并制作这样的图片:
它处理了流星分布的原始源代码,因此需要进行一些调整才能在实际的应用程序上工作(目前我无法帮助解决这个问题),但这只是一个开始......