如何从Gemfile中查看依赖树?

Moh*_*rma 40 ruby gem bundler

这样做时我收到以下错误 bundle install

Make sure that `gem install couchbase -v '1.3.3'` succeeds before bundling.
Run Code Online (Sandbox Code Playgroud)

现在,我没有把这个宝石包括在内Gemfile,所以它来自一些依赖.我怎么能弄清楚哪个宝石依赖于这个沙发基础宝石?

因为bundle install失败了,我不必Gemfile.lock弄清楚这种依赖性.

zrl*_*3dx 63

gem dependency (没有args)应该显示来自当前Gemfile的所有gems及其依赖项.

编辑:

如果你想知道哪些宝石使用特定(或所有)宝石,你也可以做gem dependency -R(或只是dep插入dependency).

对于更深层的依赖关系,我会解析第一个gem依赖项的输出(正则表达式可能是?),选择gem的名字并调用gem dep它们中的每一个,但这只是一个宽松的想法.

  • `gem dependency`与你当前的`Gemfile`无关.它只是查看系统上安装的宝石. (12认同)
  • @MohitVerma为什么不看看你当地的`Gemfile.lock`? (2认同)
  • 捆绑exec gem依赖项将使用gemfile宝石。 (2认同)

Pau*_*lgo 19

您还可以使用bundler创建依赖关系图.

安装graphviz:

gem install ruby-graphviz
Run Code Online (Sandbox Code Playgroud)

然后:

bundle viz
Run Code Online (Sandbox Code Playgroud)

以下是新创建的Rails应用程序的示例:

Rails app依赖图

您还可以使用以下选项:

bundle help viz 
Run Code Online (Sandbox Code Playgroud)

  • 如果你没有 Graphviz 但你有 Homebrew,你可以`brew install graphviz`。 (3认同)
  • 如果`bundle install`失败,`bundle viz`将无效. (3认同)