从Gemfile中删除gem后该怎么办?

Cho*_*per 21 ruby ruby-on-rails bundler

我从Gemfile中删除了一个gem'mygem',但刚才我意识到它仍然安装了.

那么如何告诉bundler重新扫描Gemfile并更新Gemfile.lock,而不更新每个gem?

来自php,这就是我习惯的方式:composer update nothing.捆绑器有相应的东西吗?

Jam*_*ier 34

您可以只运行bundlebundle install根据您的Gemfile安装gem.这mygem将从您的Gemfile.lock文件中删除该实例.但是,它不会从您的系统中删除gem.要做到这一点,运行gem uninstall mygem.

没有完全相关,但仍然有用:

  • bundle outdated将向您展示不在最新版本上的宝石.不要过于束缚这个列表 - 拥有不在最新版本上的宝石是相当普遍的,因为一些宝石作为依赖项安装,而一个宝石可能需要另一个宝石的旧版本.
  • bundle upgrade mygem将升级只是创业板,而且会带来它的依赖是最新的.这意味着其他宝石也可能会升级或安装.
  • 您可以搜索RubyGems以查看每个版本中gem的依赖关系.作为gem用户,您只需要关注gem页面底部的"Runtime Dependencies"列表.

  • 还有一个非常方便的`bundle clean`命令来自动删除旧的和未使用的宝石.使用Bundler> = 1.1以及gems是否安装了`--path`选项. (6认同)