【问题标题】:How can I make 'bundle init' include gems by default?我怎样才能让'bundle init'默认包含gem?
【发布时间】:2015-09-08 20:29:13
【问题描述】:

当我运行bundle init 开始一个新项目时,我得到一个标准的 Gemfile:

# A sample Gemfile
source "https://rubygems.org"

# gem "rails"

如何自定义?

我的目标是拥有一些gems,我几乎可以在默认情况下使用它们。

我在bundle init 文档中看到它可以与--gemspec=FILE 选项一起使用,但是有没有办法自定义仅使用bundle init 时出现的默认版本?

【问题讨论】:

    标签: ruby-on-rails ruby gem bundler


    【解决方案1】:

    你的想法是对的。我有一个我也喜欢使用的模板,它看起来像这样:

    ~/.gemspec_template

    Gem::Specification.new do |spec|
      spec.add_development_dependency "bundler", "~> 1.7"
      spec.add_development_dependency "rake", "~> 10.0"
      spec.add_development_dependency "pry"
    end
    

    从那里,我只是运行:

    bundle init --gemspec=~/.gemspec_template 
    

    我得到一个Gemfile,看起来像:

    # Generated from /Users/anthonyross/.gemspec_template
    source 'https://rubygems.org'
    
    group :development do
      gem "bundler", "~> 1.7"
      gem "rake", "~> 10.0"
      gem "pry", ">= 0"
    end
    

    【讨论】:

      【解决方案2】:
      bundle init
      

      生成一个 Gemfile 到当前工作目录

      $ bundle init [--gemspec=FILE]
      

      选项:

      --gemspec: 使用指定的 .gemspec 创建 Gemfile Init 在当前工作目录中生成一个默认的 Gemfile。什么时候 将 Gemfile 添加到带有 gemspec 的 gem, --gemspec 选项将 自动将 gemspec 文件中列出的每个依赖项添加到 新创建的Gemfile

      bundle init 所做的只是从模板生成一个Gemfile,一个gemspec

      如果你想要一个默认的 gem 列表,只需定义一个 gemspec 模板作为你的 'default'

      然后像这样使用它

      $ bundle init --gemspec=~/.default
      

      你甚至可以为它定义一个别名

      #note the lack of a space in the alias name
      $ alias bundleinit='bundle init --gemspec=~/.default' 
      

      然后像这样使用它

      $ bundleinit
      

      【讨论】:

      • 谢谢!您能否详细说明您的意思,“只需将 gemspec 模板定义为您的默认模板”?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-09
      • 1970-01-01
      • 2020-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多