首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Bundler和bundler只-抑制重复的宝石警告

Bundler和bundler只-抑制重复的宝石警告
EN

Stack Overflow用户
提问于 2017-06-14 08:04:30
回答 2查看 371关注 0票数 1

我在我的gems文件上使用bundler来执行应用程序,并且发现使用bundler-only只能够选择部署所需的一个gems子集是很方便的。

因此,在我的部署机器上,我使用bundle-only,它只安装在deploy组下命名空间的gems。

然而,由于这一点,我需要复制一些宝石(例如。我的部署需要发送通知来松弛,所以我在全局命名空间和我的:部署专用命名空间中都有一些通知程序gems。这会引起几个警告

Gemfile不止一次列出创业板松弛通知程序(>= 0)。你应该只留一个。虽然这现在不是问题,但如果稍后更改其中一个版本,可能会导致错误。

有什么办法来压制警告吗?(如果可能的话,仅限于这些宝石)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-14 09:52:07

另一种选择是维护所有groups的列表,并系统地包括, groups: groups

代码语言:javascript
运行
复制
# Gemfile
groups = [:deploy, :x, :y, :z, ...] # Maintain this list as you add groups

# Gems needed except in deploy
gem :a
gem :b
...

# Gems that are also required for deploy
gem :d1, groups: groups
gem :d2, groups: groups

# Gems that are required ONLY in deploy

group :deploy do 
  gem :dep_only1
  gem :dep_only2
end

因此,下面的工作没有警告

代码语言:javascript
运行
复制
bundle --without deploy # Will ignore deploy group
bundle-only deploy # Will install only deploy gems including those that are also needed by the app
票数 0
EN

Stack Overflow用户

发布于 2017-06-14 08:27:17

不要只列出一次宝石。这一警告是有充分理由的。

您可以在Gemfile中同时将gems分组到多个命名空间中,如下所示:

代码语言:javascript
运行
复制
group :deploy, :somethingelse do
  gem 'slack-notifier'
end

group :deploy do
  # Deploy-ONLY gems
end

group :somethingelse
  # Somethingelse-ONLY gems
end

或者,如果您愿意的话,可以内联地进行这种分组:

代码语言:javascript
运行
复制
gem 'slack-notifier', group: [:deploy, :somethingelse]

有关更多信息,请阅读Gemfile组上的邦德勒文件

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44538961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档