GitHub Organization(Private)のVue×Netlifyのサイトが急にデプロイできなくなったのを解決した話
経緯
1ヶ月以上ぶりくらいにVue×Netlifyで管理しているサイトを更新し、いつも通りbuildでデプロイしようとしたところエラーが出ました。
このエラーが一筋縄ではいかず原因究明・解決までおおよそ10時間以上使ってしまいました。
しかもその日のうちに更新しなければいけなかったため、多大なプレッシャーとストレスにさらされゲボを吐きそうになりながら調査しました。
同じエラーに直面した人が同じ思いをしなくて済むようにメモ程度に書き留めておきます。
主な原因
Netlifyで、GitHubのorganizationのPrivateリポジトリがサポートされなくなったそうです。(Starterプランの場合)
解決した手順
まずは結論から。以下のことを進めて無事デプロイできました。
- 会社のリポジトリ(Private)から自分個人へ
Transfer ownership
- VueのSassをnode-sass(LibSass)からsass(DartSass)へ移行
Transfer ownership
会社のリポジトリ(Private)から自分個人へこれは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でドラッグアンドドロップでアップ
こちらのサイトに書いてあったドラッグアンドドロップでアップする方法をためしてみましたが、既に存在しているドメインのためか、なぜか上手くいきませんでした。
Netlifyでnpmコマンドのオプションを指定する
そもそもサイトを構築しているnodeのバージョンが12系という壊滅的な古さだったので、それが原因ではないかと思って調べました。結果的に効果はありませんでしたが、Netlifyにはこんな設定もあるのかと勉強になりました。
非推奨を続けると痛い目を見る
今回のVueサイトは自分が作ったわけでないのでnodeのバージョンが古くてもLibSassでも、とりあえず動くからいいや~と更新を続けていました。
しかし結局ホスティングサービスなど他のサービスと連携する場合などはそちら側がどんどんアップデートされていき乖離してしまうので、ローカル側も極力アップデートしていかなければいけないなと痛感しました。
Discussion