以下の手順で、アセットファイルをコンパイルしたところエラーが出ました。
ターミナル(EC2内で実行)
$ rails assets:precompile RAILS_ENV=production
エラー文
yarn install v1.22.19
[1/5] Validating package.json...
error <リポジトリ名>@0.1.0: The engine "node" is incompatible with this module.Expected version "14.19.1". Got "14.19.3"
error Found incompatible module.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
上記のエラー文の意味は、「Node.jsのバージョンが違うよ。バージョン"14.19.1"を使いたいのに"14.19.3"になってるよ。」です。
ですので、Node.jsのバージョンを"14.19.1"にする必要があります。
AWSのEC2上でNode.jsのバージョンをアップデートしたい場合は、nvmを使用します。
nvmとは?
nvmとは、ノードのバージョン管理ソフトウェアで、Node Version Managerの略です。
複数のバージョンをインストールし、好きなバージョンに切り替えることもできます。npm(node package manager)も包括していて、バージョンを切り替えるとそれに合ったnpmが適用されます。
nvmのインストール
GithubのREADME.mdをみてcurlコマンドでインストールします。
nvm/README.md at master · nvm-sh/nvm · GitHub
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
バージョンは日々更新されているようなので上記のリンクから最新版を入力した方がいいです。
nvmの有効化
nvmをインストールしたら有効化(パスを通す)する必要があります。
$ . ~/.nvm/nvm.sh
Node.jsをインストール
バージョンを"14.19.1"にしたいので"14.19.1"をインストールします。
$ nvm install 14.19.1
インストールされたバージョンを既存のバージョンに設定します。
$ nvm use 14.19.1
これでバージョンが"14.19.1"となり、再度アセットファイルをコンパイルしたところ処理が正常に進みました。