LoginSignup
0
0

More than 1 year has passed since last update.

【解決】EC2にてアセットファイルをコンパイルしたときにエラーが出た。

Posted at

アセットファイルをコンパイルしたときにエラーが出ました。
手こずりましたが、いろいろ調べて解決することができたので、記録したいと思います。

ターミナル
$ rails assets:precompile RAILS_ENV=production
ターミナル
yarn install v1.22.19
[1/5] Validating package.json...
error furima_38288@0.1.0: The engine "node" is incompatible with this module. Expected version "14.20.0". Got "14.21.1"
error Found incompatible module.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

上記のようにエラーが表示されました。

エラーの原因

調べた結果、Node.jsのバージョンが非互換であることが原因だと仮説を立てました。

Expected version "14.20.0". Got "14.21.1"

この文章から、
現バージョンが、"14.21.1"であることがわかります。

念のため確認

ターミナル
$ node -v
ターミナル
v14.21.1

これを"14.20.0"に変更すると解決するのでは?と考えました。

AWSのEC2上でNode.jsのバージョンをアップデートしたいとき
→nvmを使用する。

nvmの説明

nodeのバージョン管理ソフトウェアのこと。
Node Version Managerの略。

npm(node package manager)も包括していて、バージョンを切り替えるとそれに合ったnpmが適用されます。

手順① nvmをインストールする

curlコマンドでインストールします。

https://github.com/nvm-sh/nvm/blob/master/README.md#installing-and-updating
こちらを参考に、ターミナルでコマンドを実行しました。

ターミナル
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash

手順② nvmを使えるように設定をする

ターミナル
. ~/.nvm/nvm.sh

手順③ Node.jsをインストールする

ターミナル
$ nvm install 14.20.0

今回私は、バージョン"14.20.0"をインストールしたいのでこのように記述しています。

ターミナル
Checksums matched!
Now using node v14.20.0 (npm v6.14.17)

このように返ってきました。

手順④ 現在のバージョンを確認する

ターミナル
$ node -v
ターミナル
v14.20.0

無事に指定したバージョンに変更することができました。

このあと、実行したかった
$ rails assets:precompile RAILS_ENV=production コマンドを実行し、無事にアセットファイルをコンパイルすることに成功しました。

調べ方が下手くそだったのか、結構時間がかかってしまいました。
誰かの参考になれば嬉しいです。

参考文献
https://qiita.com/shinjimjim/items/905885f797465db09504
ありがとうございました。

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