🔰
Laravel Sail✖️ViteでSegmentation faultが発生した時に試してほしい4つのこと
開発環境
・Laravel10
・Docker
・npm
・Vite
事象
Laravel Sailでnpm run devをしたところ、Segmentation faultが発生してサーバーが起動しなかった。
terminal
$ npm run dev
>dev
>vite
Segmentation fault
nodeとnpmのバージョン
terminal
$ npm -v
9.7.2
$ node -v
20.1.0
試したこと
「Segmentation fault」を解消するために試したことは以下の4つです。
- nodeのバージョンを下げる
- node_modulesを削除し、再度npm install
- PCのソフトウェアアップデートで最新の状態に更新する
- npmのキャッシュをきれいにする
1.nodeのバージョンを下げる
「npm run dev Segmentation fault」で調べると、まず出てくるのが「Nodeのバージョンを下げる」でした。
terminal
# n パッケージのインストール
$ npm install -g n
# nodeのバージョン一覧を表示し、バージョンを決定する
$ n ls-remote --all
# 指定したバージョンをインストールする(今回は16.20.1を選択)
$ sudo n 16.20.1
私の場合はこれが原因だったと思います。最新版の20.1.0から18.17.0に下げてもダメで、さらに16.20.1に下げて再度npm run devをやってみるとサーバーが起動しました。
Nodeのバージョンを下げる場合、docker-compose.ymlに以下のように設定することでもできるそうです。
docker-compose.yml
build:
args:
WWWGROUP: "${WWWGROUP}"
NODE_VERSION: "16" # <= nodeのバージョンを指定する
node_modules
を削除して、再度npm install
する
2.terminal
$ rm -rf node_modules
$ npm install
1回りセットすることで、解決することもよくありますよね...
3.PCのソフトウェアアップデートで最新の状態に更新する
これでも解決した人がいるみたいです。
私もアップデートしておらず、試してみましたが効果なし。
4.npmのキャッシュをきれいにする
terminal
$ npm cache verify
$ npm cache clean --force
あまり効果はなかったように思えますが、試してみる価値はありそうです...
まとめ
Laravel SailでViteなどを使用したアプリケーションを開発する際に、npm run devを実行すると「Segmentation fault」が発生する場合、以下のことを試してみてほしいと思います。
- nodeのバージョンを下げる
- node_modulesを削除し、再度npm install
- PCのソフトウェアアップデートで最新の状態に更新する
- npmのキャッシュをきれいにする
少しでもお役に立てば嬉しいです。
参考記事
Discussion