Help us understand the problem. What is going on with this article?

【Rails Webpacker】Webpacker::MissingEntryErrorのエラーはNode.jsのバージョンに起因するかもしれない話

【Rails Webpacker】Webpacker::MissingEntryErrorのエラーはNode.jsのバージョンに起因するかもしれない話

結論から

Nodeのバージョンを13.7以上にしてあげると
app>public>packsが生成され、当該エラーが解決される

解決までのプロセス

普通にrails new appnameでアプリを作成して
コントローラーやモデルの作成を行った後に、ブラウザでアプリをみてみると
このようなエラーが出る時がある。
スクリーンショット 2020-06-27 18.50.26.png

多数のサイトを見て、以下のコマンドを打ってみてもうまくいかない。

terminal
yarn
yarn install
yarn upgrade
brew install yarn
rails install yarn
rails webpacker:install

そして、webpackerのドキュメント READMEを読んでみると以下のコマンドが必要だとのことで、打ってみる

terminal
# こちらの一行はGemfileに書く
gem 'webpacker', '~> 5.x'

gem 'webpacker', git: 'https://github.com/rails/webpacker.git'
yarn add https://github.com/rails/webpacker.git
yarn add core-js regenerator-runtime

このyarn add ~をしたときに、以下のようなエラーが出た。

terminal
error browserslist@4.12.2: The engine “node” is incompatible with this module. Expected version “^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7". Got “13.5.0”

よってnodeのバージョンを13.7以上にしてみた。

まず
インストールできるNode.jsのバージョンを一覧で出力

terminal
nodebrew ls-remote

Node.jsの環境(ディレクトリ構成など)を自動的にセットアップしてくれる「setup」コマンドを実行しておきます

terminal
nodebrew setup

インストールできるNode.jsのバージョンを一覧で出力

terminal
nnodebrew install-binary v13.8.0

特定のバージョンの使用を命令

terminal
nodebrew use v13.8.0

以上によってnodeのバージョンを変えてあげると、当該エラーが消え、うまく画面が表示されるようになった!!

ターミナルを見てみると、

terminal
 Compiled all packs in /Users/nakayama_kazuhito/Desktop/node-version/public/packs

どうやらnodeが結構public直下にある、webpack関連のファイルの生成に関与しているそう。
んーとりあえず、一旦解決!!
またおって原因分析をします!
それではまた!!☺️

facultyoflaw11
GeeksalonというプログラミングコミュニティでRailsやWeb開発のメンターをしています #文系エンジニア #フルスタックになりたい
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした