発生した事象
Laravel7 + Vue.jsの開発で、npm run hot
を実行したところ、EADDRINUSE / ELIFECYCLEエラーが発生し、ビルドが出来なかった。
$ npm run hot
> @ hot /.../project
> cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js
events.js:298
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE: address already in use 127.0.0.1:8080
Emitted 'error' event on Server instance at:
at emitErrorNT (net.js:1336:8)
at processTicksAndRejections (internal/process/task_queues.js:84:21) {
code: 'EADDRINUSE',
errno: -48,
syscall: 'listen',
address: '127.0.0.1',
port: 8080
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ hot: `cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @ hot script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/develop/.npm/_logs/2020-03-27T06_11_47_637Z-debug.log
原因
開発で使っていたmacでnginxが起動しておりport8080を占有していた。
(他に、SwaggerのサーバなどもPort8080をデフォルトで使用するため、こちらが原因の可能性もあり)
確認方法
curlで確認するとnginxが応答している。
$ curl -v http://localhost:8080/
...
< Server: nginx/1.17.9
psで確認すると、nginxのプロセスが起動している。
$ ps -ef | grep nginx
0 20874 1 0 2:30PM ?? 0:00.00 nginx: master process nginx
-2 20875 20874 0 2:30PM ?? 0:00.01 nginx: worker process
501 29285 28791 0 3:16PM ttys001 0:00.00 grep nginx
対応
nginxを使ってなかったので終了したのち、npm run hotを再実行した。
$ sudo nginx -s stop
$ ps -ef | grep nginx
501 29344 28791 0 3:17PM ttys001 0:00.01 grep nginx
$ npm run hot
こちらもおススメ