加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

rubygems – bundle vs npm方法或为什么bundle / gem全局安装?

发布时间:2020-12-16 19:02:06 所属栏目:百科 来源:网络整理
导读:我对全局依赖的Bundle / Gem方法感到困惑.我认为全球依赖已成为过去.我向您介绍两种处理依赖关系的方法,NPM与Bundle / Gem. NPM 让我展示一下NPM的力量.假设您有一个具有以下文件夹结构的应用: /app /admin package.json /front-end package.json 您可以在
我对全局依赖的Bundle / Gem方法感到困惑.我认为全球依赖已成为过去.我向您介绍两种处理依赖关系的方法,NPM与Bundle / Gem.

NPM

让我展示一下NPM的力量.假设您有一个具有以下文件夹结构的应用:

/app
  /admin
     package.json
  /front-end
     package.json

您可以在我的应用程序中看到我有两个其他迷你应用程序.每个都有自己的package.json.

假设它们都有q作为要求,但具有不同的版本.在这两个文件夹中运行npm install将为每个迷你应用程序的node_modules安装适当的版本.一切都很好地隔离,并且运作良好.

包/宝石

捆绑方式略有不同.您使用Gemfile指定依赖项.运行捆绑安装后,宝石将被放入系统范围的位置.这意味着如果我的应用程序需要在其迷你应用程序中使用不同版本的gem,那么它就无法工作.

解决对我来说没有意义的事情:

>我知道有一个bundle install –deployment,但是它
仅用于生产中的部署.我的代码应该如何?
在开发中工作?
>此外,我知道您可以选择要求特定的
你的代码中的gem版本,但是方便了
让Gemfile中包含特定版本.这也没有意义
在生产环境中,因为您已经安装了bundle
–deployment.

我百分百肯定我在这里遗漏了一些非常微不足道的东西.请指出我正确的方向.

解决方法

我找到了’答案’.

Ruby与Node.js不同,它没有内置的对本地node_modules的支持,比如实现.因此你必须使用Bundler.但是要在代码中使用依赖项,您需要让Ruby知道这些依赖项所在的位置. Bundler通过您的应用代码中的以下行轻松实现:

require 'rubygems'
require 'bundler/setup'

这将读取您的Gemfile.lock并在您的应用程序需要某些内容时应用正确的路径.这是我错过的部分.

您还可以使用bundle exec {rubygem}来运行由应用程序的bundler安装的gem,而不是全局安装的gem.

我希望这可以帮助别人!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读