laradock+laravel mix(webpack)のコンパイルでnpm run devしたら

パン田@現役エンジニア
今回は、laravelでsassをコンパイルしようとして発生したエラーについてです。
[環境]

dockerのubuntu(laradock)
node  v11.14.0
npm 
6.7.0

webpackというかlaravel mixというのかsassをコンパイルしたくてnpm run devしたらエラーが発生

エラー文言をググってもqiitaを含め、日本語の記事では解決策が載ってなかった。

npm run devでError: spawn node_modules/webpack/bin/webpack.js ENOENT

いちおうエラー文言を載せておきます。

events.js:170
throw er; // Unhandled ‘error’ event
^

Error: spawn node_modules/webpack/bin/webpack.js ENOENT
at Process.ChildProcess._handle.onexit (internal/child_process.js:247:19)
at onErrorNT (internal/child_process.js:429:16)
at processTicksAndRejections (internal/process/task_queues.js:81:17)
at process.runNextTicks [as _tickCallback] (internal/process/task_queues.js:56:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:880:11)
at internal/main/run_main_module.js:21:11
Emitted ‘error’ event at:
at Process.ChildProcess._handle.onexit (internal/child_process.js:253:12)
at onErrorNT (internal/child_process.js:429:16)
[… lines matching original stack trace …] at internal/main/run_main_module.js:21:11

node と npmのバージョン違いという記事はありましたが、このエラーに関しては当てはまりません。

 

解決するコマンドをとりあえず

これを打ってみてください。docker環境の中でね。
ちなみにnodedir=のあとのパスについてですが、

which nodeコマンド打って、出たパスをぶち込みます。

npm install node-sass --nodedir=/home/laradock/.nvm/versions/node/v11.14.0/bin/node

 

この辺はstackoverflowを参考にした次第です。
urlは忘れました。。

あ、ちなみにdocker環境への入り方がわかんない人はlaradockディレクトリの中で、

docker exec -it laradock_workspace_1 bash
こいつを実行してくださいね。

 

ちなみに僕の環境だとnpm install node-sassコマンドしたら

dded 174 packages from 139 contributors and audited 542 packages in 39.849s
found 1 high severity vulnerability
run `npm audit fix` to fix them, or `npm audit` for details

こんな警告が出ました。

深刻な脆弱性だそうです。ローカル環境なので今回はスルーで。

npm audit fix すると更新されて脆弱性が直るらしいです。
ぼくの環境だとそれがエラーになるので、脆弱性に対応できない。。。