Rails tutorialでnode.js16を利用するとコンパイルできない件。

Rails Tutorialの第1章から学び直している途中で、herokuにアップロードができないトラブルに見舞われました。

使っていた環境はこちら

rails 6.0.4
node 16.14.0
yarn 1.22.17

-----> Installing node-v16.13.1-linux-x64
-----> Installing yarn-v1.22.17
-----> Detecting rake tasks
-----> Preparing app for Rails asset pipeline
       Running: rake assets:precompile
       yarn install v1.22.17
       [1/4] Resolving packages...
       [2/4] Fetching packages...
       [3/4] Linking dependencies...
       warning " > webpack-dev-server@4.7.4" has unmet peer dependency "webpack@^4.37.0 || ^5.0.0".
       warning "webpack-dev-server > webpack-dev-middleware@5.3.1" has unmet peer dependency "webpack@^4.0.0 || ^5.0.0".
       [4/4] Building fresh packages...
       Done in 3.15s.
       I, [2022-03-15T08:14:10.843564 #910]  INFO -- : Writing /tmp/build_7b2c4a46/public/assets/application-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css
       I, [2022-03-15T08:14:10.844624 #910]  INFO -- : Writing /tmp/build_7b2c4a46/public/assets/application-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css.gz
       Compiling...
       Compilation failed:
       yarn run v1.22.17
       info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
       
       
       error Command "webpack" not found.

webpack入ってないんだなと思い、以下を実行しても効果なし。

rails webpacker:install

そのほか、yarnや、webpackのバージョンを4->5に上げるなど行いましたが、エラーは変わらず。

以下のアカウントで、node.js versionが16だとミスるという情報を見て、対応したところドンピシャでした。

解決法

Cloud 9上のターミナルで以下のコマンドを実行するとアップデートできます。

# node.jsのアップデート
nvm install 12.13.0
nvm use 12.13.0

# package.jsonのアップデートに必要な処理。
yarn install
yarn upgrade

# ローカルでコンパイルする時に必要なwebpacker類の再インストール
rails webpacker:install


結果的にyarnのコンパイルに成功し、herokuに無事デプロイすることができました。

この記事が気に入ったらサポートをしてみませんか?