Webpacker::Manifest::MissingEntryError
ただrails sコマンドを実行したところ、今までに見たことの無いエラーが突然吐かれて混乱。
ActionView::Template::Error (Webpacker can't find application.js in /home/ec2-user/environment/Javajiten/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:
{
}
):
7: <%= csp_meta_tag %>
8:
9: <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
10: <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
11: </head>
12:
13: <body>
調べたところ、webpackerをインストール、compileする必要があるとの事。
その過程でもエラーに引っかかったので以下の記事を参考させていただき、解決しました。
【Rails6】Webpacker::Manifest::MissingEntryErrorを解決する
webpackerをインストールする
まずは下記コマンドを実行。
rails webpacker:install
私の場合、ここは特にエラーなくインストールできました。
この調子でコンパイルしてみると・・・
rails webpacker:compile
↓実行結果
Compilation failed:
warning ../../package.json: No license field
node:internal/process/promises:279
triggerUncaughtException(err, true /* fromPromise */);
^
Error: Cannot find package '@babel/plugin-proposal-private-methods' imported from /home/ec2-user/environment/Javajiten/babel-virtual-resolve-base.js
@babel/plugin-proposal-private-methodsが見つけられない・・・?
またよくわからないエラーにぶつかりました。またまた検索・・・こちらの記事を参考にさせて頂きました。
[Rails]Webpacker::Manifest::MissingEntryErrorについて
パッケージを再インストールしてみる必要がありそうなので下記コマンドを実行
#一度node_modulesを削除
rm -rf node_modules
#パッケージを再インストール
npm install --save-dev @babel/plugin-proposal-private-methods
実行してpackage.jsonを確認
"devDependencies": {
"@babel/plugin-proposal-private-methods": "^7.18.6",
"webpack-dev-server": "^3"
}
ただこれだとパッケージはインポートされているが記述がjsonに無いと言われるみたいなので追記。
"devDependencies": {
"@babel/plugin-proposal-private-methods": "^7.18.6",
#追記
"@babel/plugin-proposal-private-property-in-object": "^7.21.0",
"webpack-dev-server": "^3"
}
#インストール
npm install
#コンパイルを実行
rails webpacker:compile
正常にコンパイルでき、viewが表示されました!
最後に
これまでにいくつかWEBアプリを作りましたが初めて見るエラーだったので戸惑いました。
webpackerについてはまだまだ理解しきれていないところだらけなのでしっかり勉強していかなければ・・・
ちなみに、viewを表示した時にエラーとして引っかかったのが
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
だったので、当初はコメントアウトして対処しようとしていました。
ただ、これをコメントアウトしてしまうと後々使いたい機能が使えなかったり不便なことになるので非推奨です。
未知のエラーに当たると避けたくなりますがきちんと向き合わねばと思い直したエラーでした・・・。