美文网首页
关于 Bundler 的一些碎片

关于 Bundler 的一些碎片

作者: z_k | 来源:发表于2018-10-07 14:25 被阅读0次

    它通过管理 gems 的版本,为 ruby 项目提供一致的环境。

    Gemfile

    1. 版本号
    gem 'nokogiri'
    gem 'rails', '5.0.0'
    gem 'rack',  '>=1.0'
    gem 'thin',  '~>1.1'
    

    '~>1.1' 的意思是 >=1.1 < 2.0~> 2.0.3 的意思是 >= 2.0.3 < 2.1

    1. 指定源
    source 'https://gems.example.com' do
      gem 'my_gem', '1.0'
      gem 'another_gem', '1.2.1'
    end
    

    Git也可以作为一个源

    gem 'nokogiri', :git => 'https://github.com/tenderlove/nokogiri.git', :branch => '1.4'
    
    

    直接从本地目录安装没打包的gem

    gem 'extracted_library', :path => './vendor/extracted_library'
    
    

    从本地安装gem

    path 'components' do
      gem 'admin_ui'
      gem 'public_ui'
    end
    

    指定group

    gem 'wirble', :group => :development
    gem 'debugger', :group => [:development, :test]
    
    group :test do
      gem 'rspec'
    end
    
    

    Bundle install

    可以添加标志,下次再执行该命令自动使用最近一次的标志。该命令会自动将标志保存到配置文件里面~/.bundle/config,可以使用bundle config查看,也可用vim ~/.bundle/config编辑。要删除该标志可用bundle config --delete without

     bundle install --without production
     bundle install --with production
    

    Bundle setup & require

    require 'bundler/setup'用来添加gem及其依赖的加载路径$LOAD_PATH
    Bundler.require(:default)用来批量的require一个组,也可以单独用require ‘nokogiri’

    require 'rubygems'
    require 'bundler/setup'
    require 'nokogiri'
    
    # 或者只设置 default, ci 组的路径
    require 'rubygems'
    require 'bundler'
    Bundler.setup(:default, :ci)
    require 'nokogiri'
    
    

    Bundle exec

    bundle exec rspec spec/models 用来执行 bundle
    安装的 gem 的可执行文件,如果不想每次都敲 bundle exec可以使用bundle install --binstubs,这样可执行文件都安装到了bin目录下,使用bin/rspec spec/models执行。有时如果gem系统路径装了某个Gem,并且没有和bundle冲突,这是不用bundle exec是可以执行的,但是并不可靠,最好还是通过bundle exec执行。

    创建 Gem

    bundle gem通过bundle创建Gem可以方便的生成Gem必须的文件和目录结构。

    相关文章

      网友评论

          本文标题:关于 Bundler 的一些碎片

          本文链接:https://www.haomeiwen.com/subject/baknoftx.html