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 build如何决定在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
Run Code Online (Sandbox Code Playgroud)
编辑2 /决议:
我终于能够通过将我的所有代码提交到远程存储库,创建一个干净的克隆以及构建gem来实现这一目标.新的gem包含了所有必需的文件.
一点历史...我最初创建代码并在考虑制作宝石之前提交了它(这是我的第一个宝石).然后我用包内的原始资料库,这并没有抱怨,但也许对古怪的原因.
Nei*_*ter 26
bundler为你做的事情之一就是启动一个本地git仓库来管理你的gem代码.检查您是否已在git中添加该文件
git add lib/gem_name/missing_file.rb
Run Code Online (Sandbox Code Playgroud)
Bundler生成的gems在内部使用git来跟踪gem的源文件的"成员资格".您可以在.gemspec中看到它,它使用反引号来调用git并生成文件列表:
gem.files = `git ls-files`.split($/)
Run Code Online (Sandbox Code Playgroud)
请注意,这也意味着您应该注意列出的内容 .gitignore
归档时间: |
|
查看次数: |
2706 次 |
最近记录: |