🤮

GitHub Organization(Private)のVue×Netlifyのサイトが急にデプロイできなくなったのを解決した話

2022/10/17に公開

経緯

1ヶ月以上ぶりくらいにVue×Netlifyで管理しているサイトを更新し、いつも通りbuildでデプロイしようとしたところエラーが出ました。

このエラーが一筋縄ではいかず原因究明・解決までおおよそ10時間以上使ってしまいました。
しかもその日のうちに更新しなければいけなかったため、多大なプレッシャーとストレスにさらされゲボを吐きそうになりながら調査しました。

同じエラーに直面した人が同じ思いをしなくて済むようにメモ程度に書き留めておきます。

主な原因

Netlifyで、GitHubのorganizationのPrivateリポジトリがサポートされなくなったそうです。(Starterプランの場合)
https://www.netlify.com/pricing/private-org-repo-faq/

解決した手順

まずは結論から。以下のことを進めて無事デプロイできました。

  1. 会社のリポジトリ(Private)から自分個人へTransfer ownership
  2. VueのSassをnode-sass(LibSass)からsass(DartSass)へ移行

会社のリポジトリ(Private)から自分個人へTransfer ownership

これはGitHub上でポチポチするだけでした。
Netlifyの環境などは特にいじらずにリポジトリを移行できました。

また別のエラーが発生。Failed during stage 'building site': Build script returned non-zero exit code: 1
ログを読み進めたところERR!の項目にnode-sassが云々と書いてありました。

Vueのsassをnode-sass(LibSass)からsass(DartSass)へ移行

node-sassをアンインストール、sassをインストール、sass-loaderをアップデートしました。それに伴い、/deep/::v-deepに置き換えました。

この後ビルドしたら無事デプロイできました。

その他に試してみたこと

Netlifyでドラッグアンドドロップでアップ

https://www.netlify.com/pricing/private-org-repo-faq/
こちらのサイトに書いてあったドラッグアンドドロップでアップする方法をためしてみましたが、既に存在しているドメインのためか、なぜか上手くいきませんでした。

Netlifyでnpmコマンドのオプションを指定する

そもそもサイトを構築しているnodeのバージョンが12系という壊滅的な古さだったので、それが原因ではないかと思って調べました。結果的に効果はありませんでしたが、Netlifyにはこんな設定もあるのかと勉強になりました。
https://qiita.com/akase244/items/0eed6b8c941515417377

非推奨を続けると痛い目を見る

今回のVueサイトは自分が作ったわけでないのでnodeのバージョンが古くてもLibSassでも、とりあえず動くからいいや~と更新を続けていました。
しかし結局ホスティングサービスなど他のサービスと連携する場合などはそちら側がどんどんアップデートされていき乖離してしまうので、ローカル側も極力アップデートしていかなければいけないなと痛感しました。

Discussion