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 |
発生したエラー①
エラー文
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をインストールしておいてください。
発生したエラー②
エラー文
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が標準搭載されたという認識だけしかなかったので、つまづきました。
初学者の方への一助になれば幸いです。