我的rails ./bin目录里面有什么?

jer*_*rzy 19 ruby-on-rails

Ruby on Rails 4引入了*./bin目录.里面的./bin几个可执行文件:bundle,rails,rake,setup,spring.

我的问题是:

  1. 这些可执行文件有什么作用?它们为什么存在?
  2. 他们何时被援引?
  3. 我可以编辑它们吗?我为什么要编辑它们?

我已经阅读了这些文件的来源,我已经尝试了谷歌的目的,但我无法解决它.我正在寻找一个深入的解释.

*我相信很多这些文件存在于Rails 4之前,只是在不同的位置.

jer*_*rzy 29

在Rails 4中引入,该./bin目录包含您的应用程序的"binstubs".Binstubs是围绕gem可执行文件的包装器,例如railsor bundle,它确保在Rails应用程序的正确环境中运行gem可执行文件.

可以使用Binstubs代替bundle exec在应用程序环境中运行gem的可执行文件.例如,bundle exec rails scaffold products您可以键入而不是键入bin/rails scaffold products.使用binstub比使用binstub更灵活bundle exec,因为您不必cd在应用程序的根目录bundle exec之前输入所有内容.

默认情况下,bundle,rails,rake,setup,springbinstubs的新轨道项目自动创建.要为gem可执行文件创建binstub,只需键入bundle binstubs name_of_gem_executable.您将在./bin目录中找到新的binstub .

有些人建议./bin你加入shell的搜索$PATH,这样你就不必输入了bin/rails,只需键入即可rails.这是有风险的,因为它取决于在./bingem可执行文件的路径之前到来$PATH; 如果你碰巧忘记这个排序和调整$PATH,使得创业板的可执行文件的binstub包装发现之前,你可以很容易地调用宝石的可执行- SAN的环境借口-没有意识到这一点.