※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。
Herokuにデプロイするとエラーが起こる
前回、node-sassのバージョンに関するエラーを解消するも新たなエラーが発生
備忘録としてエラー解消方法を残しておく
ruby 2.7.7
Rails 6.0.6.1
MacOS sonoma14.5
エラー内容
Waiting on build...
-----> Building on the Heroku-20 stack
# 長文すぎるので割愛
!
! Precompiling assets failed.
!
! Push rejected, failed to compile Ruby app.
! Push failed
あれ?どれがエラー?となったが、「Precompiling assets failed.
」がエラーらしい
このエラーをまずGoogle検索したところ、こちらの記事を発見
でも詳細なエラー内容は違うみたいなので、発生したエラーのログをもっとよく見てみる
ログを遡っていくと、途中でポツンとエラー文があることを発見
# 308行目
Error: error:0308010C:digital envelope routines::unsupported
chatGPTによると、以下が原因らしい
- Node.jsのバージョン17以上で、OpenSSL 3がデフォルトで使われるようになったこと
- 上記によってライブラリが非サポートとなったこと
前回、webpackerのバージョンを上げたため、Nodejsのバージョンにも影響が出てしまった・・?
開発環境を考慮してワード検索する
「Error: error:0308010C:digital envelope routines::unsupported
」
上記のエラー文言でGoogle検索していると、他言語の記事が多く出てくる
他言語の記事を読むも解決策や修正方法が分からず、デイトラチャットで質問
「自分の環境と同じ状況でエラーが出ている記事を探すこと」をアドバイスいただく
(開発中に他言語も出てくるのかと混乱していたので助かりました)
あらためて「Heroku」も含めて検索したところ、すぐにこちらの記事を発見
解決方法
- Heroku画面からSettingsを開く
- Config VarsのReveal Config Varsをクリック
- 以下を追加(Add)する
KEY | VALUE |
---|---|
NOTE_OPTIONS | –openssl-legacy-provider |
config/environments/production.rbを開く
ENV['NODE_OPTIONS'] = '--openssl-legacy-provider'
これによりエラーが解消された!
ようやくデプロイ成功!!
お疲れさまでした〜
#DAY26