无法在新 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
,但结果是一样的。
- Jetstream版本:^1.2
- Jetstream 堆栈:惯性
- Laravel版本:^8.0
- PHP版本:^7.3
- Laravel安装程序版本:4.0.3
- NPM 版本:6.14.8
在我的 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
更新 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
,但结果是一样的。
- Jetstream版本:^1.2
- Jetstream 堆栈:惯性
- Laravel版本:^8.0
- PHP版本:^7.3
- Laravel安装程序版本:4.0.3
- NPM 版本:6.14.8
在我的 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