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

Cannot compile Laravel assets on new Homestead install

更新 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 安装。

原版POST:

几天前 vagrant destroy 并在我的 Ubuntu 主机 (20.04.1) 上安装了新的 Homestead。第一次尝试安装Jetstream,惯性堆栈,--teams。尝试了 vagrant new 方法和作曲家方法。两次都失败并出现以下错误。

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,但结果是一样的。

在我的 MacBook Pro 上遇到了完全相同的问题,并在我的 Homestead.yaml 中添加了类型:“nfs”到“文件夹”。做了 vagrant reload --provision 现在 npm 将安装和编译

我已经为这个问题困扰了很长时间,看来问题是在 [=38] 中使用 npm install =] box 所以主要问题是同步文件夹的权限之一,这是 Homestead.yaml.

的主要任务

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

这个问题有两种解决方案:

一个能让你在宅基地正常工作,另一个就像一块补丁。

在 Homestead.yaml

上的文件夹映射下方插入下一行
type: "nfs"

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

下一个选项仅适用于您的系统,它拥有所有权限,因为它“拥有”您正在工作的文件夹。

不要在 vagrant 中执行 npm install,而是转到您系统(您的计算机)中的文件夹并从那里使用命令。

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

rm -rf node_modules
npm cache clean