问题标签 [gemspecs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
173 浏览

ruby - 在 Docker 容器中构建时的 Bundler GemspecError

人们报告此错误并通过删除包含缓存的 gem 的文件夹来解决它。由于我在 Docker 容器中工作,因此这对我来说似乎没有帮助。实际上,缓存文件夹不是空的,而是包含两个项目(我猜它们来自gem install bundle)。

这是我的(错误的)dockerfile

我可以通过替换来修复RUN bundle install错误

以拥有这个本地tmp目录为代价,然后我必须将其添加到_config.ymlfor Jekyll 中的排除列表中。

我更想知道实际发生了什么。我怀疑我使用非 root 用户的方式有问题。

注意:bundle install --no-cache没有帮助。

0 投票
1 回答
169 浏览

ruby - 我如何从另一个私人红宝石宝石中获取私人红宝石宝石?

我有一个名为 的私有 gem,X其源代码托管在 Github 上。如果我想X在项目中使用,我会添加gem 'X', :git => 'git@github.com:my-org/x.git'到我项目的Gemfile. 然后我可以启动irb并键入require 'bundler/setup',然后require 'x'. 的功能X可用。

现在,我有一个不同的私有 gem,叫做Y,它的源代码也托管在 Github 上。我想X从内部使用Y

我怎样才能做到这一点?

0 投票
1 回答
217 浏览

ruby - 发布 gem https://rubygems.org

我正在尝试构建一个 cli ruby​​ gem。一切准备就绪,只需要发布即可。

首先我试过这个,

并得到了一个错误,所以在做了一些研究之后我知道我需要先制作gem,

这也是..

但是,仍然出现错误,我错过了什么吗?我应该怎么做才能解决“错误:找不到 Gemspec 文件:popular_deals-0.1.0.gem”错误?我确实有“popular_deals.gemspec”

非常感谢你的帮助!

0 投票
1 回答
585 浏览

rubygems - 当我尝试将 gem 推送到 ruby​​gems 时,我收到一条消息,说它在 gemspec 中是不允许的

我正在尝试将 gem 推送到 ruby​​gems.org 并收到以下消息:

该通用 mygemserver 条目是 gemspec 该行中的默认条目,我已将其更改为 ruby​​gems URL 无济于事。

这是我的gemspec:

这是我的仓库中此文件的副本:

我完全不知所措。有没有其他人遇到过这个或知道这里发生了什么?谢谢

0 投票
1 回答
288 浏览

ruby - Gemspec 解决依赖关系

我想创建一个具有一些依赖项的 gem。我遵循了一个教程,是完整的代码。

我有

在宝石规范中。我建造了宝石。当我尝试安装它时

我有

错误:在任何存储库中都找不到有效的 gem 'sinatra' (>= 0)

相反,我希望gem install首先安装sinatra,然后继续使用我的 gem。

如何让它在我的 gem 之前安装任何依赖项?我试过了:

  • 添加gem 'sinatra'到gemfile
  • 使用add_runtime_dependency而不是add_dependency
  • require 'rubygems'在我的 gemspec 文件之上
0 投票
0 回答
347 浏览

ruby - gem 的运行时依赖的版本

我可以让将使用我的 gem 的项目选择运行时依赖项的版本吗?

例如在我的 gem 的 gemspec 中:

在我的主要项目的 Gemfile 中:

如果我bundle install使用该配置从我的主项目执行 a ,则会出现以下错误:

0 投票
1 回答
320 浏览

rubygems - 为具有本机扩展的 gem 维护一致的 Gemfile.lock

我在一个工程师团队中工作,该团队使用本机可执行文件开发 gem。出于合同原因,重要的是,当我们部署到新环境时,所有依赖项都使用与我们测试过的完全相同的版本。Gemfile只能维护一阶依赖版本,不能维护递归版本。出于这个原因,我们一直将锁定文件签入 github,但这阻止了我们自 1.14 版本以来升级捆绑器。问题是我们有 OSX 和 Linux 的开发机器,从 1.14 开始,gem 存储库中的 lockfile 的开头更改为:

这是一个问题,因为当开发人员在 OSX 上提取 repo 并运行bundle install时,它会更改锁定文件的内容。然后,当一个 linux 开发人员做同样的事情时,它会再次发生变化,在 lockfile 的 git 历史记录中创建一堆虚假的变化!

我尝试运行bundle lock --add-platform x86_64-linuxand bundle lock --add-platform x86_64-darwin,希望这能说服 bundler 为不同平台维护两个条目,而不是在它们之间翻转。它确实为 lockfile 部分中的某些 gem 生成了重复条目GEM,但没有为该部分中的 gem 生成重复条目PATH\n specs:

目前,我们的 Gemfile 包含以下行:

加载engine.gemspec。该文件包含:

我怀疑这是问题所在。我尝试在 Gemfile中包含两次gemspec,并使用全局变量来指定要使用的平台,但捆绑器仅在第一次加载它,并跳过第二次尝试。

有谁知道允许我们将两个特定于平台的 gem 版本保存在同一个锁文件中的解决方案?

或者,有没有办法关闭捆绑器的新行为,将平台名称附加到 gem 版本?过去,当 lockfile 简单地指定“21.2.13”并且我们的 gemserver 包含每个版本的两个副本(以及为两个平台构建的二进制文件)时,bundler 在解析当前机器的正确版本时从来没有任何问题,所以这似乎就像存储多余信息的锁文件一样。我能以某种方式告诉它停止吗?

0 投票
1 回答
142 浏览

ruby - gem spec:你在哪里指定在运行时和开发环境中都有用的依赖项

如果我理解正确,

spec.add_runtime_dependency “某事”

用于运行时依赖项。

spec.add_development_dependency “某事”

用于开发依赖项。

在运行时和开发环境中都很有用的依赖项呢?它们去哪儿了?

0 投票
1 回答
30 浏览

ios - Bundler: Create Gem - 默认联系信息源?

我按照本指南构建了我的第一个 Ruby Gem:

http://bundler.io/v1.12/guides/creating_gem.html

一切都按预期工作,但我有一个问题:我注意到 Bundler 自动从某个地方(我在 Mac 上)提取了我的个人联系信息并用它来构建 gem。包含此信息的文件示例:

当我构建更多 gem 时,我不希望它默认使用我的个人联系信息(例如我的个人电子邮件地址等)。我希望它默认使用我公司的信息。我猜测/希望在某个地方有一些数据文件可以设置此默认信息,以用于所有进一步的新 gem 构建?或者也许其他方式来设置这些默认值???

我意识到我可以在脚手架构建后编辑这些信息,但我想尽可能地自动化它。

0 投票
1 回答
118 浏览

ruby - Gemspec 是否应该与 Ruby Gem 一起打包?

我读到我们不应该用 Ruby Gem 打包测试文件

现在我想知道,我们是否应该打包 Gemspec。

例如,给定以下 Ruby Gem:

如果我的Gem::Specification看起来像:

或者:

请注意第一个如何包含simplegem.gemspecs.files数组中,而第二个不包含。

  • Gemspec 是否应该与 Ruby Gem 一起打包?
  • 为什么或者为什么不?