无法在新的Homestead安装上编译Laravel资产

问题描述

更新3(最新)

根据下面的建议(来自justanothereddie),将驱动器配置为NFS可解决此问题。我不确定为什么会这样,所以问题还会再待几天。

更新2

仅购买了新的MacBook Pro,但问题仍然存在。我可以运行npm install,前提是该文件夹未与主机共享。如果与主机共享,它将失败。

更新1

我发现,如果我使用的驱动器未与主机共享,则可以编译Laravel资产。我正在运行发行版的VirtualBox软件包,即6.1.10。最新版本是6.1.12,因此也许可以解决该问题。

编辑:

本来我以为这个问题与Laravel Jetstream有关,但是现在我看到它与Laravel广泛相关。我已经完成了vagrant destroy删除工作,并删除了Homestead目录,并从头开始重新安装了Homestead。

当我执行laravel new my_project时,可以很好地安装,但是一旦发出npm install,它就会失败,并显示以下相同的错误消息。我不明白为什么没人要报告这一点。这是一个非常简单的过程,过去我已经成功完成了大约100次,并且我唯一没有尝试过的就是新硬件或VirtualBox安装。

原始帖子:

几天前有vagrant destroy,并在我的Ubuntu主机(20.04.1)上安装了新的Homestead。尝试使用--teams首次安装Jetstream,即惯性堆栈。尝试了vagrant new方法和composer方法。两次均失败,并出现以下错误

npm ERR! code ENOENT
npm ERR! syscall open
npm ERR! path /home/vagrant/code/ftmv2/node_modules/yargs/node_modules/yargs-parser/package.json.1863223755
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory,open '/home/vagrant/code/my_test/node_modules/yargs/node_modules/yargs-parser/package.json.1863223755'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent 

删除node_modules目录并重试了npm_install,但是结果是相同的。

  • Jetstream版本:^ 1.2
  • Jetstream堆栈:惯性
  • Laravel版本:^ 8.0
  • PHP版本:^ 7.3
  • Laravel安装程序版本:4.0.3
  • NPM版本:6.14.8

解决方法

在我的MacBook Pro上出现了完全相同的问题,并在Homestead.yaml中的“文件夹”中添加了“ nfs”类型。是否有一个无业游民的重新加载--provision,现在npm将安装并编译

,

我已经受此问题困扰很长时间了,看来问题出在 laravel / homestead盒中,使用 npm install 作为无业游民的用户主要问题是对同步文件夹的权限之一,这是Homestead.yaml的主要任务。

引用于:https://www.vagrantup.com/docs/synced-folders/nfs.html

此问题有两种解决方案:

一个可以使您正常在家中工作,而另一个就像一堆补丁。

在Homestead.yaml上的文件夹映射下方插入下一行

type: "nfs"

此处的文档:https://laravel.com/docs/8.x/homestead

下一个选项仅在您的系统上可用,因为它“拥有”您正在使用的文件夹,所以具有所有权限。

与其在流浪汉中执行npm install,而是转到系统(您的计算机)中的文件夹,然后从那里使用命令。

如果您需要全新安装项目,请使用:

rm -rf node_modules
npm cache clean