訳あってRailsアプリにBootstrap4をgemを使わずに導入することとなりました。
とりあえずダウンロードして配置すればいいんだろ?と思い着手したところ、依存ライブラリの部分などで想像以上に手こずったのでその時の対応内容について書いていきます。
sassは利用できる前提で話していきます。
Bootstrap4のバージョンはBootstrap v4.0.0-betaです。
Bootstrap4ダウンロード
https://getbootstrap.com/docs/4.0/getting-started/download/
上のURLからSource filesをダウンロードします。Compiledの方でもいいのかもしれませんが、特に試していません。
scssファイルの配置
ダウンロードして解凍してできたディレクトリ内のscssディレクトリの中身をstylesheet配置ディレクトリに置きます。この時に読み込む順番によっては変数が無いよと怒られるので、Railsの場合はapplication.scssを以下のように記述しましょう。application.scssがない場合は新規作成しましょう。
@import "bootstrap/_functions.scss"; @import "bootstrap/_variables.scss"; @import "bootstrap/mixins/*"; @import "bootstrap/*"; /* *= require_tree . */
この例ではapp/assets/stylesheets配下にbootstrapというディレクトリを作成し、ダウンロードファイルを配置しています。
javascriptファイルの配置
ここで大いに時間を取られました。自身の未熟さを恥じるばかりです。
Bootstrapのjavascript
まずはダウンロードして解答してできたディレクトリの中のdist/jsの中のbootstrap.min.jsをapp/assets/javascripts配下におきます。
jQueryのjavascript
Bootstrapを動かすにはjQueryが必要ですので、導入してない場合、ダウンロードして配置しましょう。
上記リンク先ページの一番上の方にあるDownload the compressed, production jQuery 3.2.1からソースをダウンロードして、同じくapp/assets/javascripts配下に配置しましょう。
Popper.js
Bootstrap4から追加されたらしい依存ライブラリであるPopper.jsを用意する必要があります。
これもダウンロードしてきて配置します。
https://github.com/FezVrasta/popper.js/releases
上記リンク先からダウンロードしましょう。
ダウンロード・解答してできたディレクトリのdist/umd配下のpopper.min.js/popper-utils.min.jsをapp/assets/javascriptsに配置します。
umd配下にあるjsファイル以外を使うと、Babel等のコンパイラを導入していない場合、文法の関係で怒られます。具体的にはexportが使用されているソースだと動きません。
application.jsの記述
あとは順番を指定して読み込ませるようapplication.jsを以下の通り記述すれば動くはずです。
//= require popper-utils.min.js //= require popper.min.js //= require jquery-3.2.1.min.js //= require bootstrap.min.js //= require rails-ujs //= require_tree .
まとめ
改めてgemのありがたさを痛感いたしました。いつもありがとうgem。
もし今回紹介した手順で動かない場合、Twitterまたはお問い合わせからクレーム入れてくれれば、できる範囲で回答させていただきます。
またこの手順はもっと楽にできるよーなどあれば教えていただけると喜びます。
今回の記事がどなたかのお役に立てば幸いです。
-
-
文系出身エンジニアが26才でフリーランスになった感想
こんにちは。フリーランスエンジニアのてぃすです。 フリーランスエンジニアということは、つまりエンジニアとして独立しているということになり、すごい敷居が高い印象を持っている人が多いです。 けど僕は文系大 ...
続きを見る