gpt4 book ai didi

ruby - 构建后 Gem 中缺少文件

转载 作者:数据小太阳 更新时间:2023-10-29 06:36:36 27 4
gpt4 key购买 nike

长话短说:

不要在现有的 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

编辑 2/分辨率:

我终于能够通过将所有代码提交到远程存储库、创建干净的克隆并构建 gem 来实现它。新 gem 包含所有必需的文件。

一些历史......我最初创建代码并在考虑制作 gem 之前提交它(这是我的第一个 gem)。然后我在原始存储库中使用了 bundle inside ,它没有提示,但可能是奇怪的原因。

最佳答案

bundler 为您做的一件事是启动一个本地 git 存储库来对您的 gem 代码进行版本管理。检查您是否已将文件添加到 git 中

git add lib/gem_name/missing_file.rb

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

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

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

关于ruby - 构建后 Gem 中缺少文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16922322/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com