最近在坐React-native项目打包时报socket连接失败,但是在mac系统下打包正常,经过艰难排查,发现时fs.inotify.max_user_watches默认值太小,导致react-native编译bundle文件时与wepack-dev-server进行socket连接报错,报错信息如下:
Error: socket hang up
at createHangUpError (_http_client.js:323:15)
at Socket.socketOnEnd (_http_client.js:426:23)
at Socket.emit (events.js:194:15)
at endReadableNT (_stream_readable.js:1125:12)
at process._tickCallback (internal/process/next_tick.js:63:19)
Emitted 'error' event at:
at Socket.socketOnEnd (_http_client.js:426:9)
at Socket.emit (events.js:194:15)
at endReadableNT (_stream_readable.js:1125:12)
at process._tickCallback (internal/process/next_tick.js:63:19)
解决方案
在终端按顺序执行下面两个命令即可解决问题
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
sudo sysctl --system