0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Laravelで「node::ResetStdio(): Assertion `(err) != (-1)' failed.」のエラーが発生

Last updated at Posted at 2019-08-07

はじめに

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.0v12.4.0にダウングレード

使用するバージョンを切り替える

$ nvm use 12.4.

変更の確認

$ node -v
v12.4.0

エラーの確認

エラーが発生した手順を試す。
「npm run watch」実行→「Ctrl + C」でストップ。

見事にエラーが解決!!

やはりNode.jsがv12.5.0だったことが原因らしい。

補足

CSSが反映されない問題はこの時点でまだ解決せず。
以下に解決した方法をまとめた記事を書いたので、キャッシュ問題に悩んでいる方は参考までにご覧ください。
Laravelにてキャッシュが原因でCSSの変更が反映されない問題

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?