eureka

fibers v5 はまだ Node.js v16に対応していない。

4

環境

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系を使うのは早かったということですね・・ショボン

4