環境
node.js v16.5.0
nuxt 2.14.0
sass 1.35.2
sass-loader 10
fibers 5.0.0
インストール時にsassなどの関連するパッケージも記載しましたが、実際に見ていくのはnode.jsのバージョンとfibersのバージョンのみで良いかと思います。
Node.jsを最新の16系にしたらエラーが出た
Nuxtアプリの立ち上げやビルド実行時に下記のようなエラーが出て、立ち上がらなくなりました。
Assertion failed: (thread_id_key != 0x7777), function find_thread_id_key, file ../src/coroutine.cc, line 134.
error Command failed with signal "SIGABRT".
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
調べるとメモリリークを起こしているから『処理を見直せ』とか『メモリを増やして解決!』とかいう記事がいっぱい出てきて、ボイラープレートなのでファイルや関数はほとんどないのに、そんなはずは・・・と思っていました。
そんな時出会ったのが、やっぱり世界のお友達。
The problem was that one of the dependencies (node-fibers) isn’t compatible with nodejs v16.0.0 or later.
Random “Assertion failed” errors on Apple M1 chip – stack overflow
fibers!?入れたわ!しかもnode.jsも16系だわ!と気づくことができました。
偉大なお友達に感謝いたします。
fibersが対応するNodeのバージョンはv12〜v14
お友達にヒントをもらい、fibersのnpmのページで対応するバージョンを確認したところ、下記のように指定されていました。
If you are running 64-bit nodejs version 12.x or 14.x on Linux, OS X, or Windows (7 or later) then you should be able to install fibers from npm just fine.
fibers – npm
どこかでの記事では『15系にダウングレードしたら動いた』というのも見かけたので、もしかしたら15系でも大丈夫かもしれませんが、奇数バージョンはあまり使わないようにしているのと、公式で14までと指定されているので14系に落とすことにしました。
すると無事に復活です!
同じようなエラーで悩んでいる方の参考になれば幸いです
まだまだNode.jsの16系を使うのは早かったということですね・・ショボン