Webpacker::Manifest::MissingEntryErrorを解決した話。（Mac ローカルでrails serverの起動編）

# 環境
OS: Mac
SHELL: zsh

# Webpacker::Manifest::MissingEntryErrorが出たぞ〜！
ローカル環境で初めてrails serverを実行したら以下のエラーが発生した。
```
ActionView::Template::Error (Webpacker can't find application.js in /Users/hogehoge/environment/sample_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:
{
}
):
    2:     <%= csp_meta_tag %>
    3:     <%= stylesheet_link_tag    'application', media: 'all',
    4:                                'data-turbolinks-track': 'reload' %>
    5:     <%= javascript_pack_tag 'application',
    6:                                'data-turbolinks-track': 'reload' %>
  
app/views/layouts/_rails_default.html.erb:5
app/views/layouts/application.html.erb:5
```
Webpacker can't find application.jsとあるので、webpackerに問題がありそう。
# webpackerをコンパイルすんぞ！

https://qiita.com/negisys/items/2bf88659f584fe45b686

そこで、上記の記事を見つけ、コンパイルすればいけそうなので、してみた。
```
rails webpacker:install
rails webpacker:compile
```
すると、コンパイルにも失敗してしまう。。。
```
Compiling...
Compilation failed:
node:internal/crypto/hash:67
  this[kHandle] = new _Hash(algorithm, xofLen);
                  ^

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:67:19)
    at Object.createHash (node:crypto:133:10)
.
.
.
```
Error: error:0308010C:digital envelope routines::unsupportedという内容で検索すれば、何か出てきそうだな。

# Node.jsのバージョンを下げるぞ！
https://off.tokyo/blog/next-0308010cdigital-envelope/

https://qiita.com/mame_daifuku/items/373daf5f49ee585ea498

上記の記事から、Node.jsのバージョンをv14.18.1まで下げる必要があるみたい。
（色々やってるうちにできたから、混乱しないようにあえて細かいのは飛ばします。）
```
$ nodebrew install-binary v14.18.1
Fetching: https://nodejs.org/dist/v14.18.1/node-v14.18.1-darwin-x64.tar.gz
Warning: Failed to create the file 
Warning: /Users/hogehoge/.nodebrew/src/v14.18.1/node-v14.18.1-darwin-x64.ta
Warning: r.gz: No such file or directory
curl: (23) Failure writing output to destination

download failed: https://nodejs.org/dist/v14.18.1/node-v14.18.1-darwin-x64.tar.gz
```
残念ながら、バージョンを下げることもできない、その程度の人間でした。。。
と思ったら、エラー内容から/Users/hogehoge/.nodebrew/srcまでは用意してあげなくちゃいけないみたい。今回は、
mkdir ~/.nodebrew
mkdir ~/.nodebrew/src
で作りましたが、下記のコードで作成してくれるらしい。
さらに、上記で作ったとしてもこれは必要らしいのでやっとこう。　
```
$ nodebrew setup    
Fetching nodebrew...
Installed nodebrew in $HOME/.nodebrew

========================================
Export a path to nodebrew:

export PATH=$HOME/.nodebrew/current/bin:$PATH
========================================
```
そして、リベンジ。
```
＄　nodebrew install v14.18.1       
Fetching: https://nodejs.org/dist/v14.18.1/node-v14.18.1-darwin-x64.tar.gz
######################################################################################################################################### 100.0%
Installed successfully
```
いけた！
```
$ node -v
v14.18.1
```
# 頼むからコンパイル通ってくれ
イッケーーーーー！！！
```
$ rails webpacker:compile
.
.
.
[0] (webpack)/buildin/module.js 552 bytes {0} [built]
[1] ./app/javascript/packs/application.js 778 bytes {0} [built]
[5] ./app/javascript/channels/index.js 205 bytes {0} [built]
[6] ./app/javascript/channels sync _channel\.js$ 160 bytes {0} [built]
    + 17 hidden modules
```
おし！ということは？
![スクリーンショット 2022-05-28 16.56.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2684787/c90ec6e6-02c8-1d5d-569a-183214c4e690.png)
rails serverが起動した〜！

# 最後に
今回はrails serverが立ち上がらない事象について、解説しました。
rails tutorialのサンプルアップをローカルに持ってきたらこうなったので、同じ境遇の人がいたら参考にしてください。
また、nodebrew setupを実は飛ばしてて、mkdirだけやっていたので、上で話した以上に苦戦してました。みなさんお気をつけください。