ruby – 构建后宝石中缺少文件

前端之家收集整理的这篇文章主要介绍了ruby – 构建后宝石中缺少文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
TL; DR:

不要在现有的git存储库中运行bundle.奇怪的事情会发生没有任何错误信息.

原始问题:

我通过修改本教程中的步骤构建了一个gem:

http://net.tutsplus.com/tutorials/ruby/gem-creation-with-bundler/

作为最后一步,我已经运行gem build .gemspec

这样做成功了,但是当我安装gem时,我找到了关键文件,其中包含我的代码文件不在gem中.相同(lib)目录中的另一个文件“version.rb”确实存在于gem中.

我不知道如何开始调试这个…如何bundler / gem构建决定哪些文件包含在宝石?

编辑:

我的工作流程是:

gem build <project_name>.gemspec
gem unpack <project_name>
=> confirm file does not exist in <unpacked>/lib/

gem install <project name>
=> confirm file structure in ~/home/stefan/.rvm/... contains gem,but does not contain desired file

编辑2 /分辨率:

我终于可以通过将我的所有代码提交到远程存储库,创建一个干净的克隆和构建gem来获得这些工作.新宝石包括所有必需的文件.

有一点历史…我最初创建了代码,并在考虑制作宝石之前承诺了(这是我的第一个宝石).然后我使用原始存储库中的bundle,而没有抱怨,但可能是奇怪的原因.

解决方法

Bundler为你做的一件事是启动一个本地的git repo来版本管理你的宝石代码.检查你是否添加了git文件
git add lib/gem_name/missing_file.rb

Bundler生成的宝石在内部使用git来跟踪宝石的源文件的“成员资格”.您可以在.gemspec中看到这一点,它使用反引号来调用git并生成文件列表:

gem.files         = `git ls-files`.split($/)

注意这也意味着你应该注意你在.gitignore中列出的内容

猜你在找的Ruby相关文章