升级Bootstrap 4 for Rails的正确方法是什么?

时间:2018-03-27 04:14:17

标签: css ruby-on-rails twitter-bootstrap ruby-on-rails-5 twitter-bootstrap-4

我尝试从我的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文件并替换项目中的旧文件?

2 个答案:

答案 0 :(得分:0)

你可以看一下这篇文章:

How to update a single gem conservatively

选项1

如果已经满足更新的所有依赖项,这将有效。

  1. 找出要更新的版本

  2. 直接在Gemfile.lock

  3. 中更改
  4. 运行bundle install并查看是否有效
  5. 选项2

    如果gem与其他gem没有共享依赖关系,这将有效。

    1. 找出您要更新的版本。
    2. 使用'=1.2.3'
    3. 将该版本显式添加到Gemfile中
    4. 运行bundle install
    5. 再次删除显式版本号
    6. 再次运行bundle install
    7. 选项3

      这应该始终有效。

      1. 运行bundle update GEMNAME
      2. 运行git diff Gemfile.lock并注意您不想要的所有更新
      3. 将不需要的更改还原为您不想要的Gemfile.lock(手动或逐个转换更改的行),只保留所需的更新。
      4. 运行bundle install并查看是否有效
      5. 选项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";