Laravelではlaravel-mixというものがあり、クライアントサイドのcss,jsのビルドをnpm run dev
コマンドを一つで簡単に行えます。
ですが、このnpm run dev
を実行したときに"ERR! code ELIFECYCLE"エラーが出ることがあります。
エラーの出力例
$ npm install
$ npm run dev
> @ dev /path/to/project
> npm run development
> @ development /path/to/project
> cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js
events.js:167
throw er; // Unhandled 'error' event
^
Error: spawn node_modules/webpack/bin/webpack.js ENOENT
at Process.ChildProcess._handle.onexit (internal/child_process.js:227:19)
at onErrorNT (internal/child_process.js:404:16)
at process._tickCallback (internal/process/next_tick.js:63:19)
at Function.Module.runMain (internal/modules/cjs/loader.js:721:11)
at startup (internal/bootstrap/node.js:228:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:576:3)
Emitted 'error' event at:
at Process.ChildProcess._handle.onexit (internal/child_process.js:233:12)
at onErrorNT (internal/child_process.js:404:16)
[... lines matching original stack trace ...]
at bootstrapNodeJSCore (internal/bootstrap/node.js:576:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ development: `cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @ development 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/xxx/.npm/_logs/xxx.log
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ dev: `npm run development`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @ dev 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/xxx/.npm/_logs/xxx.log
対処方法
この問題が発生した直接の原因は特定できませんでしが、以下のコマンドで一旦全部クリアしてから再度実行したところうまくいきました。
# インストールされたjsモジュールを全部消す
rm -rf node_modules
# インストールされたjsモジュールのバージョン情報を消す
rm package-lock.json yarn.lock
# npmのキャッシュをクリアする
npm cache clear --force
# 再度jsモジュールを全部入れ直して、実行する
npm install
npm run dev
参考: https://github.com/JeffreyWay/laravel-mix/issues/1072
こちらもおススメ