質問: お世話になっております。 vagrant と バーチャルボックス環境でLaravel Framework 5.7.28インストール後、 laravel-mixを入れようと npm install --no-bin-links をすると、エラーになります。 エラーの内容は下記です。 ``` npm ERR! path /home/vagrant/code/cryptoapp/node_modules/yargs/node_modules/yargs-parser/package.json.3777755817 npm ERR! code ENOENT npm ERR! errno -2 npm ERR! syscall open npm ERR! enoent ENOENT: no such file or directory, open '/home/vagrant/code/cryptoapp/node_modules/yargs/node_modules/yargs-parser/package.json.3777755817' npm ERR! enoent This is related to npm not being able to find a file. npm ERR! enoent npm ERR! A complete log of this run can be found in: npm ERR! /home/vagrant/.npm/_logs/2019-08-08T14_14_53_324Z-debug.log ``` **対処法として行ったこと** *・パッケージ.json修正* 最初は「cross-env: not found」というエラーも出ていたため、 パッケージ.json内の cross-env の部分を、 node node_modules/cross-env/dist/bin/cross-env.js に変更 参考:https://qiita.com/Yorinton/items/fd9dae33c6748abcdfbc この「cross-env」エラーは出なくなりました。 *・node_modules入れ直し* 次に、下記参考にnode_modulesを入れ直しましたが、前述のエラーが発生する状態です。 https://qiita.com/ishizukih/items/9673e709832dacaa5155 *・laravel入れ直し* 次に、laravel appを削除し、5.7で入れ直して見ましたが、同じエラーとなります。 考えられる点などあれば、お知らせいただけますと幸いです。 追記 node.js のバージョンは12.4.0 ちなみに、npmのバージョンは6.10.2 となります!
回答: 最新のHomestead(box8.0.1)のnodeは12。 nodeのバージョンが低いのでなにか間違えてる。 npmやcomposerはvagrantの外で実行。 ホスト側にもコマンド使える程度の環境は必要。 いちいちvagrant内に入って実行なんてしたくない。 Rubyならvagrant内で作業したほうがいいけどnodeやPHPは違う。 これもRailsしか知らない人がLaravelでも同じと思い込んで間違った情報を広めてる例。