0
0

More than 1 year has passed since last update.

解決方法_Webpacker::Manifest::MissingEntryError

Posted at

初めに

原因は細かに追求していません。(調べたけどわかりませんでした)
あくまでも解決方法をまとめています。

エラー内容

Railsアプリを新規作成し、諸々初期設定を終え、いざbin/rails sしてブラウザで表示すると、下記のエラー文が表示。
エラー内容は、1.You〜に書いてある通り,webpackerの設定がコンパイルしないようになっていることが原因のよう。

javascript_pack_tagがレイズされてるのはなぜなのか、、。
webpackerでコンパイルしない設定になっているのに、JSをwebpackerでコンパイルする記述になっているから?

Webpacker::Manifest::MissingEntryError
Webpacker can't find application in /Users/"ユーザ名"/app/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:
{
}

<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>

開発環境

  • ruby 2.6.5
  • rails 6.0.0

解決までの道筋

1. webpackerをインストールして、webpackerを用いたコンパイルを実行

ターミナルにて対象のRailsアプリのディレクトリで下記コマンドを実行

rails webpacker:install
rails webpacker:compile

しかし、解決せず。同様のエラーが発生。

2. Gemfileを書き換え

gem 'webpacker', '~> 5.0’ に書き換え

3. package.jsonに"@rails/webpacker": "5.4.3"を追記

package.json
"dependencies": {
  
  "@rails/webpacker": "5.4.3"

4. yarn.lock削除

yarn installする前にyarn.lockを削除。
削除せずにyarn installすると、先ほどの変更が反映されないため。
yarn.lockを元にyarn installされてしまう。)

5. yarn installyarn add node-sass を実行

3.で行った変更を反映させる。

6. 再度コンパイル実行

rails webpacker:install
rails webpacker:compile

7. 解決!

webpackerでコンパイルできるようになりました。

終わりに

本エラーは2回再現されたため、メモとして残す。
せっかくなのでなぜこのエラーが発生するのかまで追求したかったのですが、分からず。

以下調べた内容をまとめる。

Rails6はデフォルトの設定だとSprocketsとWebpackerを併用することにより、アセットファイルのコンパイルを行っている。WebpackerはJavaScriptファイル、Sprocketsはその他のアセット(CSSや画像など)のコンパイル。

今回のエラーはWebpackerでのコンパイルが動作していなかった。

参考記事

https://qiita.com/negisys/items/2bf88659f584fe45b686
https://qiita.com/hryau6/items/820d0b404325688574ba

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0