Rails6 Webpacker::Manifest::MissingEntryErrorを解決する
環境
起きたこと
rails g controller index home
して、ページにアクセスしたところ以下のエラーが出た。
=> Booting Puma => Rails 6.0.3.2 application starting in development => Run `rails server --help` for more startup options Puma starting in single mode... * Version 4.3.5 (ruby 2.7.1-p83), codename: Mysterious Traveller * Min threads: 5, max threads: 5 * Environment: development * Listening on tcp://127.0.0.1:3000 * Listening on tcp://[::1]:3000 Use Ctrl-C to stop Started GET "/hello/index" for ::1 at 2020-07-07 16:46:25 +0900 (1.6ms) SELECT sqlite_version(*) Processing by HelloController#index as HTML Rendering hello/index.html.erb within layouts/application Rendered hello/index.html.erb within layouts/application (Duration: 2.3ms | Allocations: 189) /Users/mashio/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-rails-3.2.1/lib/sprockets/rails/helper.rb:355: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call /Users/mashio/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-4.0.2/lib/sprockets/base.rb:118: warning: The called method `[]' is defined here [Webpacker] Compiling... [Webpacker] Compilation failed: yarn run v1.22.4 info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. error Command "webpack" not found. Completed 500 Internal Server Error in 2640ms (ActiveRecord: 0.0ms | Allocations: 9336) ActionView::Template::Error (Webpacker can't find application in /Users/mashio/Desktop/fjord/rails/helloworld/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: { } ): 6: <%= csp_meta_tag %> 7: 8: <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> 9: <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %> 10: </head> 11: 12: <body>
error Command "webpack" not found.
ここが気になる..
一度rails webpacker:install
してちゃんとインストールされるのか、確認したところ気になる部分を見つけた。
error browserslist@4.13.0: The engine "node" is incompatible with this module. Expected version "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7". Got "13.6.0" error Found incompatible module.
nodeのバージョンが原因でエラーが出ている。
nodebrew
を使って、別のバージョンのnodeをインストールし有効化してみる。
$ nodebrew install v12.0.0 $ nodebrew use v12.0.0
再度webpackerをインストールすると、errorが出ずにインストールできる。
そしてrails s
すると...
無事表示できました🎊