Laravelで「node::ResetStdio(): Assertion `(err) != (-1)' failed.」のエラーが発生
はじめに
Laravelのフロントエンドの実装をしていたら「npm run watch」を実行してもブラウザ側でCSSの変更が反映されなくなった。
「npm run watch」実行中に「Ctrl + C」コマンドで中止すると、ターミナルに以下のエラーが発生。
$ node[34624]: ../src/node.cc:649:void node::ResetStdio(): Assertion `(err) != (-1)' failed.
1: 0x10007643b node::Abort() [/Users/name/.nodebrew/current/bin/node]
2: 0x1000761e3 node::AppendExceptionLine(node::Environment*, v8::Local<v8::Value>, v8::Local<v8::Message>, node::ErrorHandlingMode) [/Users/name/.nodebrew/current/bin/node]
3: 0x1000541a9 node::ResetStdio() [/Users/name/.nodebrew/current/bin/node]
4: 0x7fff51001ef4 __cxa_finalize_ranges [/usr/lib/system/libsystem_c.dylib]
5: 0x7fff510021fe exit [/usr/lib/system/libsystem_c.dylib]
6: 0x100039326 node::Environment::stop_sub_worker_contexts() [/Users/name/.nodebrew/current/bin/node]
7: 0x1001f2214 v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo) [/Users/name/.nodebrew/current/bin/node]
8: 0x1001f1831 v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) [/Users/name/.nodebrew/current/bin/node]
9: 0x1001f0ec0 v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::internal::Isolate*) [/Users/name/.nodebrew/current/bin/node]
10: 0x10090d739 Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_NoBuiltinExit [/Users/name/.nodebrew/current/bin/node]
この記事は上記のエラーを解決し、CSSを反映するまでの方法について書いたものです。
バージョンと実行状況
- Laravel v5.8.29
- Node.js v12.5.0
Docker環境で、npmコマンドなどはMacOS上で実行していた。
今回のエラーもMacOSのみでしか発生しないものらしい。
流れとしては、csccファイル変更→「npm run watch」で都度反映 という形で行なっていた。
原因
どこかのタイミングでNode.jsのバージョンが上がったことが原因。
情けないことにいつ何をしてバージョンアップしたのかが不明。
どうやらNode.jsのv12.5.0で対象のエラーが出るらしい。
エラーについての参考資料
https://github.com/nodejs/node/issues/28479
上記記事を参考に試したこと。
-
npm i natives
コマンドの実行 - 「node_modules」「package-lock.json」を削除後の
npm install
しかしどれもエラーの解決には至らず...
https://github.com/nodejs/node/issues/20325
上記のやり取りを確認し、Node.jsのバージョンが原因と発覚。
個人的な開発なので、Node.jsのバージョンを固定にしていたわけでもなかったので、Node.jsのバージョンをダウングレードすることに。
nvmを使ってNode.jsのバージョンをダウングレード
https://qiita.com/strsk/items/925644e124efcc964625
上記記事を参考にし、Node.jsをダウングレード
(ダウングレードというよりは、バージョンの切り替え?)
nvmのインストール
$ git clone git://github.com/creationix/nvm.git ~/.nvm
$ source ~/.nvm/nvm.sh
インストール可能なNode.jsのバージョンを確認
$ nvm ls-remote
Node.jsのバージョンを指定してインストール
$ nvm install 12.4.0
v12.5.0
→v12.4.0
にダウングレード
使用するバージョンを切り替える
$ nvm use 12.4.
変更の確認
$ node -v
v12.4.0
エラーの確認
エラーが発生した手順を試す。
「npm run watch」実行→「Ctrl + C」でストップ。
見事にエラーが解決!!
やはりNode.jsがv12.5.0だったことが原因らしい。
補足
CSSが反映されない問題はこの時点でまだ解決せず。
以下に解決した方法をまとめた記事を書いたので、キャッシュ問題に悩んでいる方は参考までにご覧ください。
Laravelにてキャッシュが原因でCSSの変更が反映されない問題
Author And Source
この問題について(Laravelで「node::ResetStdio(): Assertion `(err) != (-1)' failed.」のエラーが発生), 我々は、より多くの情報をここで見つけました https://qiita.com/milmil_neko/items/bc80497252ef0bad9fb7著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .