无法在新的 Homestead 安装上编译 Laravel 资产
Posted
技术标签:
【中文标题】无法在新的 Homestead 安装上编译 Laravel 资产【英文标题】:Cannot compile Laravel assets on new Homestead install 【发布时间】:2021-01-08 00:02:53 【问题描述】:更新 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。第一次尝试安装Jetstream,惯性堆栈,--teams
。尝试了 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
,但结果相同。
【问题讨论】:
这对您有帮助吗github.com/npm/npm/issues/992#issuecomment-289935776 ? 感谢 Clement,现在一切正常(请参阅上面的 NFS 解决方法)。如果需要,我可能会进一步查看此建议。 【参考方案1】:在我的 MacBook Pro 上遇到了完全相同的问题,并在我的 Homestead.yaml 中的“文件夹”中添加了类型:“nfs”。是否重新加载了 vagrant --provision ,现在 npm 将安装和编译
【讨论】:
哇,谢谢。那行得通。我不知道为什么,所以将问题留待几天。【参考方案2】:我已经被这个问题困扰了很长时间,似乎问题是在 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
下一个选项只是在您的系统中工作,它拥有所有权限,因为它“拥有”您正在工作的文件夹。
不要在 vagrant 中执行 npm install,而是转到系统(您的计算机)中的文件夹并从那里使用命令。
如果您需要全新安装您的项目,请使用:
rm -rf node_modules
npm cache clean
【讨论】:
以上是关于无法在新的 Homestead 安装上编译 Laravel 资产的主要内容,如果未能解决你的问题,请参考以下文章
Erlang/OTP 无法在 Solaris 11 11/11 上编译