開発ブログ

株式会社Nextatのスタッフがお送りする技術コラムメインのブログ。

電話でのお問合わせ 075-744-6842 ([月]-[金] 10:00〜17:00)

  1. top >
  2. 開発ブログ >
  3. PHP >
  4. Laravel >
  5. 【Laravel Mix】vagrantで《spawn EACCES》なんて出た時の対処法

【Laravel Mix】vagrantで《spawn EACCES》なんて出た時の対処法

こんにちは
ニシザワです。

本日はvagrant環境でLaravel Mixのnpm install時に下記のようなエラーが出た場合の対処法を書いていきたいと思います。
internal/child_process.js:325
    throw errnoException(err, 'spawn');
    ^

Error: spawn EACCES
    at _errnoException (util.js:1041:11)
    at ChildProcess.spawn (internal/child_process.js:325:11)
    at exports.spawn (child_process.js:493:9)
    at Object.exports.execFile (child_process.js:208:15)
    at Object.module.exports.fileCommand (/Users/ohffs/Documents/code/testeroo/node_modules/node-notifier/lib/utils.js:53:13)
    at NotificationCenter.notify (/Users/ohffs/Documents/code/testeroo/node_modules/node-notifier/notifiers/notificationcenter.js:66:11)
    at module.exports.WebpackNotifierPlugin.compilationDone (/Users/ohffs/Documents/code/testeroo/node_modules/webpack-notifier/index.js:62:18)
    at Compiler.applyPlugins (/Users/ohffs/Documents/code/testeroo/node_modules/tapable/lib/Tapable.js:61:14)
    at emitRecords.err (/Users/ohffs/Documents/code/testeroo/node_modules/webpack/lib/Compiler.js:268:11)
    at Compiler.emitRecords (/Users/ohffs/Documents/code/testeroo/node_modules/webpack/lib/Compiler.js:375:38)
    at emitAssets.err (/Users/ohffs/Documents/code/testeroo/node_modules/webpack/lib/Compiler.js:262:10)
    at applyPluginsAsyncSeries1.err (/Users/ohffs/Documents/code/testeroo/node_modules/webpack/lib/Compiler.js:368:12)
    at next (/Users/ohffs/Documents/code/testeroo/node_modules/tapable/lib/Tapable.js:218:11)
    at Compiler.compiler.plugin (/Users/ohffs/Documents/code/testeroo/node_modules/webpack/lib/performance/SizeLimitsPlugin.js:99:4)
    at Compiler.applyPluginsAsyncSeries1 (/Users/ohffs/Documents/code/testeroo/node_modules/tapable/lib/Tapable.js:222:13)
    at Compiler.afterEmit (/Users/ohffs/Documents/code/testeroo/node_modules/webpack/lib/Compiler.js:365:9)
    at require.forEach.err (/Users/ohffs/Documents/code/testeroo/node_modules/webpack/lib/Compiler.js:354:15)
    at /Users/ohffs/Documents/code/testeroo/node_modules/async/dist/async.js:421:16
    at iteratorCallback (/Users/ohffs/Documents/code/testeroo/node_modules/async/dist/async.js:998:13)
    at /Users/ohffs/Documents/code/testeroo/node_modules/async/dist/async.js:906:16
    at /Users/ohffs/Documents/code/testeroo/node_modules/graceful-fs/graceful-fs.js:43:10
    at FSReqWrap.oncomplete (fs.js:135:15)

再インストールしてみる

npmのキャッシュやpackage-lockに情報が残っていると、うまく動かない場合がある。
rm -rf node_modules
rm package-lock.json yarn.lock
npm cache clear --force
npm install

権限を確認してみる

インストールした、node_moduleが実行できない権限になっている場合がある。
sudo chmod 775 -Rf node_modules/
vagrantのマウント先でnode_modulesを配置している場合は、上記のコードでは権限を変更できないです。
そのため、Vagrantfileでマウントしている箇所にどの権限でマウントするかを書く必要がある。
config.vm.synced_folder "./", "/vagrant", create:true, mount_options: ['dmode=775','fmode=775']
dmodeがディレクトリの権限です。
fmodeがファイルの権限です。
上記のように書き換えて、vagrantを再起動すれば、権限が変わります。

大体は権限周りか、必要ファイルがうまく読み込まれてない場合が多いのでこちらで対処できるはずです。
TOPに戻る