【发布时间】:2014-01-07 09:39:18
【问题描述】:
我对全局依赖的 Bundle/Gem 方法感到困惑。我认为全局依赖已成为过去。我向您介绍了两种处理依赖项的方法,NPM 与 Bundle/Gem。
NPM
让我来演示 NPM 的强大功能。假设您有一个具有以下文件夹结构的应用:
/app
/admin
package.json
/front-end
package.json
您可以看到,在我的应用程序中,我还有另外两个迷你应用程序。每个都有自己的package.json。
假设他们都有q 作为要求,但有不同的版本。在这两个文件夹中运行npm install 会为每个小应用程序的node_modules 安装适当的版本。一切都很好地隔离并且运行良好。
捆绑包/宝石
Bundles 方法略有不同。您使用Gemfile 来指定您的依赖项。运行bundle install 后,gems 将被放入系统范围的位置。这意味着,如果我有一个应用程序需要在其迷你应用程序中使用不同版本的 gem,那么它将无法工作。
对我来说毫无意义的变通方法:
我知道有一个
bundle install --deployment,但它 仅用于生产中的部署。我的代码应该如何 从事开发工作?另外,我知道您可以选择要求特定的 代码中 gem 的版本,但这比 有
Gemfile,里面有特定的版本。也没有意义 在生产环境中,因为您已经拥有bundle install --deployment。
我 100% 确定我在这里遗漏了一些非常微不足道的东西。请为我指明正确的方向。
【问题讨论】: