问题标签 [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.
ruby - 在 Docker 容器中构建时的 Bundler GemspecError
人们报告此错误并通过删除包含缓存的 gem 的文件夹来解决它。由于我在 Docker 容器中工作,因此这对我来说似乎没有帮助。实际上,缓存文件夹不是空的,而是包含两个项目(我猜它们来自gem install bundle
)。
这是我的(错误的)dockerfile
我可以通过替换来修复RUN bundle install
错误
以拥有这个本地tmp
目录为代价,然后我必须将其添加到_config.yml
for Jekyll 中的排除列表中。
我更想知道实际发生了什么。我怀疑我使用非 root 用户的方式有问题。
注意:bundle install --no-cache
没有帮助。
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
。
我怎样才能做到这一点?
ruby - 发布 gem https://rubygems.org
我正在尝试构建一个 cli ruby gem。一切准备就绪,只需要发布即可。
首先我试过这个,
并得到了一个错误,所以在做了一些研究之后我知道我需要先制作gem,
这也是..
但是,仍然出现错误,我错过了什么吗?我应该怎么做才能解决“错误:找不到 Gemspec 文件:popular_deals-0.1.0.gem”错误?我确实有“popular_deals.gemspec”
非常感谢你的帮助!
rubygems - 当我尝试将 gem 推送到 rubygems 时,我收到一条消息,说它在 gemspec 中是不允许的
我正在尝试将 gem 推送到 rubygems.org 并收到以下消息:
该通用 mygemserver 条目是 gemspec 该行中的默认条目,我已将其更改为 rubygems URL 无济于事。
这是我的gemspec:
这是我的仓库中此文件的副本:
我完全不知所措。有没有其他人遇到过这个或知道这里发生了什么?谢谢
ruby - Gemspec 解决依赖关系
我想创建一个具有一些依赖项的 gem。我遵循了一个教程,这是完整的代码。
我有
在宝石规范中。我建造了宝石。当我尝试安装它时
我有
错误:在任何存储库中都找不到有效的 gem 'sinatra' (>= 0)
相反,我希望gem install
首先安装sinatra,然后继续使用我的 gem。
如何让它在我的 gem 之前安装任何依赖项?我试过了:
- 添加
gem 'sinatra'
到gemfile - 使用
add_runtime_dependency
而不是add_dependency
require 'rubygems'
在我的 gemspec 文件之上
ruby - gem 的运行时依赖的版本
我可以让将使用我的 gem 的项目选择运行时依赖项的版本吗?
例如在我的 gem 的 gemspec 中:
在我的主要项目的 Gemfile 中:
如果我bundle install
使用该配置从我的主项目执行 a ,则会出现以下错误:
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-linux
and 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 在解析当前机器的正确版本时从来没有任何问题,所以这似乎就像存储多余信息的锁文件一样。我能以某种方式告诉它停止吗?
ruby - gem spec:你在哪里指定在运行时和开发环境中都有用的依赖项
如果我理解正确,
spec.add_runtime_dependency “某事”
用于运行时依赖项。
spec.add_development_dependency “某事”
用于开发依赖项。
在运行时和开发环境中都很有用的依赖项呢?它们去哪儿了?
ios - Bundler: Create Gem - 默认联系信息源?
我按照本指南构建了我的第一个 Ruby Gem:
http://bundler.io/v1.12/guides/creating_gem.html
一切都按预期工作,但我有一个问题:我注意到 Bundler 自动从某个地方(我在 Mac 上)提取了我的个人联系信息并用它来构建 gem。包含此信息的文件示例:
当我构建更多 gem 时,我不希望它默认使用我的个人联系信息(例如我的个人电子邮件地址等)。我希望它默认使用我公司的信息。我猜测/希望在某个地方有一些数据文件可以设置此默认信息,以用于所有进一步的新 gem 构建?或者也许其他方式来设置这些默认值???
我意识到我可以在脚手架构建后编辑这些信息,但我想尽可能地自动化它。
ruby - Gemspec 是否应该与 Ruby Gem 一起打包?
我读到我们不应该用 Ruby Gem 打包测试文件。
现在我想知道,我们是否应该打包 Gemspec。
例如,给定以下 Ruby Gem:
如果我的Gem::Specification看起来像:
或者:
请注意第一个如何包含simplegem.gemspec
在s.files
数组中,而第二个不包含。
- Gemspec 是否应该与 Ruby Gem 一起打包?
- 为什么或者为什么不?