OREMATOPEE

プログラミング、気になったこと、メモ書き...etc

Rails6はWebpackerのインストールが必要

はじめに

Railsでのアプリ作成において、Welcome Railsの画面からDeviseを追加してビューをいじっていると、エラーが発生して画面が確認できなくなっていた。
エラーの解消法を記載するが、結論から書くとRails6で標準搭載となった Webpackerに伴うエラーでした。
内容はかなり初歩的ですが、アプリケーション作成において事前作業が必要な内容で、つまづきやすいので注意しましょう(自戒)

環境

名前 バージョン
Ruby 2.7.2
Rails 6.0.3
Docker for Mac 2.5.0.1
yarn 1.22.4

発生したエラー①

_2020-11-25_4.17.06.png

エラー文

Webpacker configuration file not found /app/config/webpacker.yml. Please run rails webpacker:install Error: No such file or directory @ rb_sysopen - /app/config/webpacker.yml

原因

Rails6で標準搭載となった Webpackerですが、Rails側は仕組みを採用しているだけでインストールはしていません。
インストールすればコンフィグファイルが作成され解決します。

解決法

下記を実行してください。

$ rails webpacker:install

これによってWebpackerがインストールされます。(文字通り!)
ただし、yarnを使うので、事前にyarnをインストールしておいてください。

発生したエラー②

_2020-11-25_4.19.33.png

エラー文

Webpacker::Manifest::MissingEntryError in hogehoge

Showing /Users/yuhiisk/Work/sites/smout/app/views/layouts/application.html.slim where line #10 raised: Webpacker can't find application.js in /Users/yuhiisk/Work/sites/smout/public/packs/manifest.json. Possible causes: 1. You want to set webpacker.yml value of compile to true for your environment unless you are using the webpack -w or the webpack-dev-server. 2. webpack has not yet re-run to reflect updates. 3. You have misconfigured Webpacker's config/webpacker.yml file. 4. Your webpack configuration is not creating a manifest. Your manifest contains: { }

原因

Webpackerインストールしたから開発しよーポチーとかしてると続いて上記が発生。
Webpackerのコンパイルを行わないとRailsが認識できないみたいです。
Rails6ではインストールとコンパイル、セットで必要ですね。

解決法

下記を実行してください。

$ rails webpacker:compile

おわりに

Webpackerが標準搭載されたという認識だけしかなかったので、つまづきました。
初学者の方への一助になれば幸いです。