我尝试从我的Rails 5项目的Bootstrap 4 Alpha 6 升级到4.0.0 最终版本,我确定v4.0.0 gem已经已安装(我也卸载了alpha版本宝石),但是当我运行我的项目(开发模式)时,我发现生成的Bootstrap CSS文件仍然基于Alpha版本。
gem 'bootstrap', '~> 4.0.0'
除了卸载旧gem并安装新的bootstrap gem之外,我是否还需要为升级做其他事情?下载物理v4.0.0文件并替换项目中的旧文件?
答案 0 :(得分:0)
你可以看一下这篇文章:
How to update a single gem conservatively
选项1
如果已经满足更新的所有依赖项,这将有效。
找出要更新的版本
直接在Gemfile.lock
选项2
如果gem与其他gem没有共享依赖关系,这将有效。
'=1.2.3'
bundle install
bundle install
选项3
这应该始终有效。
bundle update GEMNAME
git diff Gemfile.lock
并注意您不想要的所有更新Gemfile.lock
(手动或逐个转换更改的行),只保留所需的更新。bundle install
并查看是否有效选项4
有传言称你可以通过致电bundle update --source GEMNAME
来更新单个宝石。然而,似乎没有人知道这是如何以及为什么这样做,它不是Bundler的记录功能。这可能是其他事情的意外副作用。
我相信此命令会尝试仅更新GEMNAME和GEMNAME。如果这导致与其他锁定宝石的无法匹配的依赖,它将失败。
如果您使用此选项,请务必git diff您的Gemfile.lock以查看更改是否符合您的预期。
选项5
Bundler >= 1.14
有一个--conservative flag
。使用保守标志允许捆绑更新GEM更新GEM版本,但阻止Bundler更新GEM所依赖的任何宝石的版本。
致作者:Henning Koch
答案 1 :(得分:0)
尝试在其他地方保留Gemfile和JS / CSS中的Ruby依赖项。 Node + Yarn是一种很好的方法。
如果还没有
brew install yarn
然后在config / initializers / assets.rb
中Rails.application.config.assets.paths << Rails.root.join('node_modules')
现在您可以在控制台中执行此操作:
yarn add bootstrap
它应该创建一个node-modules目录(如果还没有)。 然后只需将bootstrap添加到JS / SCSS文件
<强> JS 强>
//= require bootstrap/js/src/index
<强> CSS 强>
@import "bootstrap/scss/bootstrap";