bootstrap3から4への移行方法について　(Rails5)

<!-- wp:paragraph -->
<p>今回はbootstrapのバージョン変更について書いていきたいと思います。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>経緯はこうです。ポートフォリオ製作の中、週一の専用メンタリングがあり時間もわずかのところでメンターの方から</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>　</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph {"fontSize":"medium"} -->
<p class="has-medium-font-size"><strong>『あれ？bootstrapは３を使ってるんですね！』</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>　</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>な、なんだ！？　教材を参考にして制作を進めてるからそもそもバージョンにこだわりがなくてbootstrap3になっていたわけだが何かまずいのかな？と聞いてみると</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>　</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph {"fontSize":"medium"} -->
<p class="has-medium-font-size"><strong>『今はbootstrap4が主流ですね。特にこだわりがなければ新しいのを使った方がいいですよー。あとは今であれば困ったときにbootstrap4の方が似たようなケースも多いと思うので解決しやすいですよ！！』</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>なるほど。そしたらどうせ今後も使う機会もあると思うので新しいbootstrap4にバージョンを変更しよう！！</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>と意気込み、以下の記事を参考にしながらやってみました。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><a href="https://qiita.com/NaokiIshimura/items/c8db09daefff5c11dadf">https://qiita.com/NaokiIshimura/items/c8db09daefff5c11dadf</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>なんだー簡単じゃんと思い　いざアプリを立ち上げると</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>　</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>　</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":1,"customTextColor":"#ff0000"} -->
<h1 class="has-text-color" style="color:#ff0000">全然導入できねえ</h1>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>　</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph {"customFontSize":0} -->
<p style="font-size:0">こんなにバージョン更新が難しいとは。。。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>やったこと</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>gemfile中に以下を記述しbundle install</p>
<!-- /wp:paragraph -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted">gem 'bootstrap', '~&gt; 4.1.1'
gem 'jquery-rails'  </pre>
<!-- /wp:preformatted -->

<!-- wp:paragraph -->
<p>sprockets-railsがv2.3.2.以上である必要があるらしいので以下コードでバージョン確認<br></p>
<!-- /wp:paragraph -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted">$ bundle show |fgrep sprockets-rails
  * sprockets-rails (3.2.1) 問題なし</pre>
<!-- /wp:preformatted -->

<!-- wp:paragraph -->
<p>app/assets/stylesheets/application.scssの中に@import "bootstrap";があることを確認。またファイル名がcssのままだとよくないのでscssに変えておく<br>ここも今までのbootstrap3導入まででやっていたことなので問題なし。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>　</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>ブートストラップJavaScriptはjQueryに依存しています。Rails 5.1以降を使用している場合は、<code>jquery-rails</code>gemをGemfileに追加します。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted">gem ' jquery-rails '　ここもbootstrap3導入まででやっていたことなので問題なし。</pre>
<!-- /wp:preformatted -->

<!-- wp:paragraph -->
<p>application.jsに以下を記述する。</p>
<!-- /wp:paragraph -->

<!-- wp:preformatted -->
<pre class="wp-block-preformatted">//= require jquery3
//= require popper
//= require bootstrap-sprockets</pre>
<!-- /wp:preformatted -->

<!-- wp:paragraph -->
<p>rails s を再度して立ち上げる</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>エラー発生</p>
<!-- /wp:paragraph -->

<img width="690" alt="ブートストラップエラー.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/572185/4f843f1d-3fb1-9551-a623-f9b41f888538.png">


<!-- wp:paragraph -->
<p>内容をググりながらみていくと<br><strong>Sass::SyntaxError in Pages#index</strong><br>シンタックスエラーなのでコンパイルがうまくいってないのかな？<br><br>念のため他のページで読み込んでみるも特にエラー内容は変わらず<br><br>File to import not found or unreadable: bootstrap-sprockets.<br>この一行で検索をかけると</p>
<!-- /wp:paragraph -->

<!-- wp:core-embed/wordpress {"url":"http://geekday.hatenablog.com/entry/2017/03/31/021052","type":"wp-embed","providerNameSlug":"hatena-blog","className":""} -->
<figure class="wp-block-embed-wordpress wp-block-embed is-type-wp-embed is-provider-hatena-blog"><div class="wp-block-embed__wrapper">
http://geekday.hatenablog.com/entry/2017/03/31/021052
</div></figure>
<!-- /wp:core-embed/wordpress -->

<!-- wp:paragraph -->
<p>同じような境遇の方がいたので早速みてみるも解決せず<br>タイポもなさそうだしバンドルインストール後railsサーバー再起動するも変わらずエラー<br></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><a href="https://github.com/twbs/bootstrap-rubygem">https://github.com/twbs/bootstrap-rubygem</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>bootstrap4の公式手順を見るも特にやってないことはないんだけどなあと途方に暮れました。まじで</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>　</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph {"backgroundColor":"vivid-cyan-blue","fontSize":"large"} -->
<p class="has-background has-large-font-size has-vivid-cyan-blue-background-color">　ここから解決方法！！！</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>というわけでメンターの方に助けを求めると</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>まずGemファイル内のgem 'bootstrap-sass'を削除した方がいいと<br>これはbootstrap3を導入するときの記述なので本質的なエラーとは関係ないかもしれないが余計な影響があるかもしれない<br></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>　</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":131,"sizeSlug":"large"} -->
<figure class="wp-block-image size-large"><img src="http://binbo-roku.com/wp-content/uploads/2020/03/ブートストラップエラー-1024x828.png" alt="" class="wp-image-131"/></figure>
<!-- /wp:image -->

<!-- wp:heading {"level":3,"customTextColor":"#ff0000"} -->
<h3 class="has-text-color" style="color:#ff0000">このエラー画像の下の赤いラインなんですが<br><br>@import "bootstrap-sprockets";<br><br>app/assets/stylesheets/application.scssの中にbootstrap3の名残で書いていたのですが、これがそもそもbootstrap4では必要がないらしいです　なのでこれを削除</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>@import "bootstrap-sprockets";
File to import not found or unreadable: bootstrap-sprockets.とエラーメッセージが出ているのでこちらのファイルがないのに読み込みにいってます。
なので余談ですがapp/assets/stylesheets/application.scssの中に適当なファイル名を追記すると同じエラーが出ました。（@import "aaaaa";実際にこんなファイルはないので読み込めないですと表示されます)　</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>再度railsサーバー再起動すると無事に表示！！<br>３から４に変えたことでデザインは崩れていましたが。
</p>
そもそも
<p>　いやーここまで長かった。スタックオーバーフロウの英語の記事もGoogle先生に翻訳してもらいながら他の関係ありそうな記事を何件も読み半日以上格闘してました。<br>今回も残念ながら一人での解決はできませんでしたが惜しいところまで来ていたかと思います。</p>

<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>　</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph {"fontSize":"medium"} -->
<p class="has-medium-font-size">今後のエラー解決方法としては</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>バージョンを変える場合は以前のバージョンと更新したいバージョンの公式説明を読んでみる<br>これに関しては４の導入説明は読んでいたけど３の導入説明は探していなかったので３の記事を読んでいたら導入方法の違いがわかってもしかしたら解決できたかもしれません。更新手順を進める前にgitにpushしてからいろいろ変更しても大丈夫なようにすれば気軽に怪しい場所を削除して解決できるかなと思いました。</strong></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>　</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>ニッチではありますが同じ境遇で同じエラーで困っている方は是非参考にしてください。</p>
<!-- /wp:paragraph -->