概要
Docker + Rails環境でSprocketsからWebpackerに移行作業時にWebpackerをインストールするまでのエラーにハマってしまったため、解決方法を紹介します。
暫定的対応のため、本来のエラー解決方法をご存知の方はコメント下さると幸いです。
環境
- ruby 2.6.3
- Rails 5.2.3
- docker
エラーが起こるまで
- Dockerfileにyarnを使用するための記述追加
- Gemfileに
gem 'webpacker'
追加 - docker-compose run web bundleにてgemインストール
\ エラー発生 /
webpack binstubs not found.
Have you run rails webpacker:install ?
Make sure the bin directory or binstubs are not included in .gitignore
Exiting!
ERROR: 1
エラー文にある
rails webpacker:install
はwebpacker
のインストール完了後に実行するつもりだったし、
.gitignore
にbin/以下を無視するような記述を加えてないし。。。という感じでハマりました。
解決方法
① bin/
にwebpack
という名前で空のファイルを生成後にdocker-compose run --rm web bundle
実行。(webpack binstubs not found.と言われているので)
\ エラー文が変わった! /
Configuration config/webpacker.yml file not found.
Make sure webpacker:install is run successfully before running dependent tasks
ERROR: 1
②エラー文に従い、config/webpacker.yml
作成
- ファイルの中身はgithubからコピペで。
③ docker-compose run --rm web bundle
実行。
- gemインストール完了!
④docker-compose run --rm web bundle exec rails webpacker:install
実行にて、Webpackerをインストール。
- ①、②で作成したファイルを上書き出来ます。
以上が解決手順です。
終わりに
本来bin/webpack
もwebpacker.yml
もwebpackerインストール時に自動生成されるもののため、何故手動生成する必要があったかモヤモヤしています。
もしわかる方いらっしゃいましたら教えてください!!
参考情報
https://qiita.com/junara/items/28fbc5e4d2ba6a162d24
Rails5.2 + Docker環境にVue.js (Webpacker) を導入する