使用 Airdrop 加速 Laravel 资产构建
发布于 作者: Paul Redmond
Airdrop 是一个适用于 Laravel 的包,它可以通过尽可能跳过资产构建来加速代码部署。
Airdrop 会计算构建资产(例如包、JS、CSS 等)中所有必需文件的哈希值。如果 Airdrop 遇到相同的哈希值,它会跳过资产构建步骤,并通过 Laravel 的 文件系统 API 下载已构建的资产。它将构建资产存储在您选择的某个文件系统中,作为一个 .zip
文件,通常是一个云提供商,例如 S3。
它的工作原理简而言之是:安装并配置 Airdrop 后,您需要在管道中添加以下命令
php artisan airdrop:downloadnpm run productionphp artisan airdrop:upload
根据您打算如何跳过资产构建,如果存在 .airdrop_skip
点文件,npm run production
步骤将跳过资产构建。
以下是部署文档中的一个更详细的 bash 示例:部署文档
php artisan airdrop:download # Skip several steps if we can.if [ ! -f ".airdrop_skip" ]; then nvm install nvm use yarn install --frozen-lockfile npm run production fi php artisan airdrop:upload
最后,如果由于某种原因您无法使用 Airdrop 附带的内置文件系统驱动程序(用于上传和下载资产),您可以定义一个扩展包的 BaseDriver
的 PHP 类。
use Hammerstone\Airdrop\Drivers\BaseDriver; class CustomDriver extends BaseDriver{ // Called after building, to stash the files somewhere. public function upload(){} // Called before building files, to see if we can skip public function download() {}}
了解更多
您可以在 GitHub 上了解更多关于此包的信息,并查看 源代码。查看 官方文档,以获取有关入门和配置部署的深入指南。请特别注意 部署文档,以确保在资产未发生更改时跳过资产构建。