运行一个简单的 Laravel 应用程序时,我需要大的供应商目录吗?

Posted

技术标签:

【中文标题】运行一个简单的 Laravel 应用程序时,我需要大的供应商目录吗?【英文标题】:Do I need the large Vendor directory when running a simple Laravel app? 【发布时间】:2019-02-13 06:31:18 【问题描述】:

我是 Laravel 的新手。当我最终将我的新 Web 应用程序部署到主机/实时服务器时,我意识到有近 5,000 个文件被传输到它。

我不传输 node_modules 依赖项,所以不是那些文件。因为我使用的是 webpack (Laravel Mix),所以不需要服务器端的 node_modules 依赖,就可以了。

这是更大的嫌疑人。我的主机/实时服务器上是否需要它们?如果是这样,为什么我的 Laravel Web 应用程序的主要部分只有几页。

vendor/symfony = 1500 files
vendor/laravel = 900 files
vendor/mongodb = 500 files
vendor/nikic (php-parser) = 500 files
vendor/swiftmailer = 300 files
vendor/psy = 250 files

我意识到一旦部署了应用程序,我就可以调用 composer install。但是在生产服务器上安装作曲家本身对我来说似乎很奇怪。在这种情况下,我宁愿在部署期间传输文件。

大多数情况下,我想知道为什么我需要这些。它们只是所有 Laravel Web 应用程序所需的开销吗?

【问题讨论】:

我发现 Composer 经常包含在生产中不使用的依赖项中的测试文件,因此您可以删除这些文件。另请参阅:***.com/questions/26930816/… 我建议将 composer.phar 存档下载到您的生产服务器,因为它还处理 Auto-LoadCaching乙>。我还建议使用 git/webhooks 设置一个简单的部署系统,它可以在代码更新(迁移、缓存等)上运行最重要的命令。检查Laravels Documentation 【参考方案1】:

是的。这些文件用于生成运行应用程序所需的代码(依赖项)。例如,如果您删除了此文件夹,您将无法执行任何 Laravel 的“魔术”,例如使用 Eloquent。虽然有很多文件夹和文件,但还是有必要保留它们。

这是一个很好的 article 解释供应商文件夹的确切含义。

注意:默认情况下发布到GitHub 时,此供应商文件夹为 忽略。请看根目录下的.gitignorefile 您的应用程序。

【讨论】:

以上是关于运行一个简单的 Laravel 应用程序时,我需要大的供应商目录吗?的主要内容,如果未能解决你的问题,请参考以下文章

Xdebug laravel artisan 命令

Laravel 5:在服务器环境而不是本地运行迁移

如何在自定义 URL 上运行 Laravel mix?

在服务器子文件夹中移动 Laravel 5 应用程序

Laravel 5 应用命名空间

为啥我不能使用 PHP artisan serve 运行我的 laravel 应用程序?