はじめに
自粛期間中に買ったラズパイで遊ぶ延長として、今回おもむろにFireBaseに触りだしたのですが、謎のエラーで初っ端から盛大に躓きました。どうも実行環境というかプロセッサ依存の不具合らしく、かなり深刻に悩んだのでここにまとめておきます。初めてのFireBaseで意気揚々とチャレンジしたのに、見事に出鼻をくじかれました。はぁ…。
実行環境
- マシン:Surface Laptop3
- OS:Windows10
- ソフトウェア
- node.js : v12.16.3
- npm:6.14.4
- firebase-tools:8.3.0
発生事象
Windowsにfirebase-toolsをインストールし、ログインまでは成功。
次に、firebase init
を叩いた時に、ある程度までいったところで下記のエラーが発生して終了します。
Assertion failed: new_time >= loop->time, file c:\ws\deps\uv\src\win\core.c, line 309
原因
Webで調査するもあまり情報がなく、どうもSurfaceの割と最近のモデルや、特定のプロセッサ(IntelのIce Lakeとか)でちょくちょく発生している模様。今回はたまたまFireBase-toolsの実行中に発生しましたが、npm-cli環境であれば他のモジュールでも発生することがあるようです。開発用に奮発して買ったSurface Laptopでいきなりプロセッサや端末依存のエラーにぶち当たるとは思いませんでした(泣)
対策
海外の掲示板では「CMOSクリアすればいいよ」とか「BIOSいじればいいよ」みたいなことも書かれてましたが、(壊しそうだし)ちとハードルが高い…。結局、WSLでUbuntuを入れて、その中でFireBase-toolsを実行し直すことで回避しました。何だかとても複雑な気持ちですが、動いたので良しとします。FireBaseはWSL環境で、開発はWindows環境のVSCodeから行う…という構成にすると良い具合でした。
**Docker使えば?**という声も聞こえてきそうですが、Dockerは当方が勉強不足のためご勘弁を…。次はDockerも触ってみよう。