12

我可以使用 RSpec 或 Rails 或 Pry 之类的 gem,方法是在命令行上调用它们各自的 gem 名称,例如rspec, 。如何使用我创建的宝石实现这一目标?我正在使用 bundler 进行基本的 gem 创建。railspry

4

3 回答 3

12

我实际上在文件夹中有我的可执行/bin文件。

原来我的问题是 bundler 的 gem 模板太聪明了,它只包含已提交给 git 的文件。我实际上还没有提交可执行文件,所以它没有把它捡起来:

# gemname.gemspec
gem.files         = `git ls-files`.split($\)
于 2012-11-02T07:03:56.877 回答
5

根据Gemspec 文件的文档,您必须将可执行文件放在bin/文件夹中。

于 2012-10-20T15:47:06.897 回答
3

要使您的 gem 在 CLI 中可执行,您应该设置以下内容。

  1. 将您的可执行文件放在bin文件夹中,例如bin/hello
  2. chmod u+x bin/hello通过设置权限 ( )使该可执行文件
  3. 相应地设置 gemspec 配置 ( hello.gemspec)
spec.files  = `git ls-files -Z`.split("\x0")
spec.bindir = 'bin'
spec.executables << 'hello'

spec.executables视为bin二进制文件和可执行文件的默认文件夹,但您可以更改它。

您可以在此处找到相关文档:Gemspec#executables

于 2021-01-13T18:07:45.993 回答