※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。
Herokuにデプロイするとエラーが起こる
前回、ffiのバージョンを下げることでrubygemsに関するエラーは解決したものの、新たなエラーが発生
備忘録としてエラー解消方法を残しておく
ruby 2.7.7
Rails 6.0.6.1
MacOS sonoma14.5
エラー内容
-----> Building on the Heroku-20 stack
# 長文すぎるので割愛
SyntaxError: EOL while scanning string literal
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack at ChildProcess.onCpExit (/tmp/build_66375367/node_modules/node-gyp/lib/configure.js:345:16)
gyp ERR! stack at ChildProcess.emit (node:events:514:28)
gyp ERR! stack at ChildProcess._handle.onexit (node:internal/child_process:294:12)
gyp ERR! System Linux 6.1.109-118.189.amzn2023.x86_64
gyp ERR! command "/tmp/build_66375367/bin/node" "/tmp/build_66375367/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd /tmp/build_66375367/node_modules/node-sass
gyp ERR! node -v v20.9.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
Build failed with error code: 1
!
! Precompiling assets failed.
!
! Push rejected, failed to compile Ruby app.
! Push failed
Deploy Branch後、これまでよりかなり時間がかかったのでデプロイ成功を期待!するも、エラーが発生
このエラーをまずGoogle検索したところ、Pythonだけどこちらの記事を発見
文字列の定義に文法ミスがあるときは
SyntaxError: EOL while scanning string literal
というエラーメッセージが表示されます。
文字列リテラルとは、シングルクォート
'
やダブルクォート"
で括られた文字列のことを指します。
つまり、コードの途中で「’」「”」を閉じていない可能性があるとのこと
(ここまで何となく分かったものの、コードに該当箇所が見つからなかったため、いったん置いておきました)
次はこのエラーをそのまま検索し、こちらの記事を発見
yarnコマンドは実行していないけど、以下のエラーが解消できそう
gyp ERR! cwd /tmp/build_66375367/node_modules/node-sass
node-sassに依存しているライブラリがあるらしい
yarn why node-sass
で、依存しているライブラリを探す
yarn why node-sass
yarn why v1.22.22
[1/4] 🤔 Why do we have the module "node-sass"...?
[2/4] 🚚 Initialising dependency graph...
[3/4] 🔍 Finding dependency...
[4/4] 🚡 Calculating file sizes...
=> Found "node-sass@4.14.1"
info Reasons this module exists
- "@rails#webpacker" depends on it
- Hoisted from "@rails#webpacker#node-sass"
info Disk size without dependencies: "6.05MB"
info Disk size with unique dependencies: "14.23MB"
info Disk size with transitive dependencies: "27.02MB"
info Number of shared dependencies: 73
✨ Done in 0.66s.
"@rails#webpacker" depends on it
とある
→参考記事と同様、@rails#webpacker
で使用されているnode-sassのバージョンに問題があることがわかる
解決方法
package.jsonにて、"@rails/webpacker": “4.3.0”,
を"^5.4.3”
に上げる
"@rails/webpacker": "^5.4.3",
今回表示されたエラーはこれで解決できた!
#DAY26