0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Webpacker::Manifest::MissingEntryError を解決したい

Posted at

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を確認

package.json
"devDependencies": {
    "@babel/plugin-proposal-private-methods": "^7.18.6",
    "webpack-dev-server": "^3"
  }

ただこれだとパッケージはインポートされているが記述がjsonに無いと言われるみたいなので追記。

package.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を表示した時にエラーとして引っかかったのが

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

だったので、当初はコメントアウトして対処しようとしていました。
ただ、これをコメントアウトしてしまうと後々使いたい機能が使えなかったり不便なことになるので非推奨です。
未知のエラーに当たると避けたくなりますがきちんと向き合わねばと思い直したエラーでした・・・。

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?