加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 19:26:13 所属栏目:百科 来源:网络整理
导读:TL; DR: 不要在现有的git存储库中运行bundle.奇怪的事情会发生没有任何错误信息. 原始问题: 我通过修改本教程中的步骤构建了一个gem: http://net.tutsplus.com/tutorials/ruby/gem-creation-with-bundler/ 作为最后一步,我已经运行gem build .gemspec 这
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中列出的内容

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读