CoderFunda
  • Home
  • About us
    • Contact Us
    • Disclaimer
    • Privacy Policy
    • About us
  • Home
  • Php
  • HTML
  • CSS
  • JavaScript
    • JavaScript
    • Jquery
    • JqueryUI
    • Stock
  • SQL
  • Vue.Js
  • Python
  • Wordpress
  • C++
    • C++
    • C
  • Laravel
    • Laravel
      • Overview
      • Namespaces
      • Middleware
      • Routing
      • Configuration
      • Application Structure
      • Installation
    • Overview
  • DBMS
    • DBMS
      • PL/SQL
      • SQLite
      • MongoDB
      • Cassandra
      • MySQL
      • Oracle
      • CouchDB
      • Neo4j
      • DB2
      • Quiz
    • Overview
  • Entertainment
    • TV Series Update
    • Movie Review
    • Movie Review
  • More
    • Vue. Js
    • Php Question
    • Php Interview Question
    • Laravel Interview Question
    • SQL Interview Question
    • IAS Interview Question
    • PCS Interview Question
    • Technology
    • Other

18 April, 2022

Speed Up Asset Builds with Airdrop for Laravel

 Programing Coderfunda     April 18, 2022     Laravel, Packages     No comments   

 Airdrop is a package for Laravel that speeds up code deployments by skipping asset builds whenever possible.

Airdrop calculates the hash of everything needed in your build assets (i.e., packages, JS, CSS, etc.). If Airdrop encounters the same hash, it will skip the asset build step and pull down built assets via Laravel’s File System API. It stores build assets in the filesystem of your choosing as a .zip file, typically a cloud provider like S3.

The gist of how it works is that once you’ve installed and configured Airdrop, you’ll add these commands to your pipeline:

1php artisan airdrop:download
2npm run production
3php artisan airdrop:upload

Depending on how you intend to skip asset building, the npm run production step will skip building assets if a .airdrop_skip dotfile exists.

Here’s a more in-depth bash example from the deployment documentation:

1php artisan airdrop:download
2 
3# Skip several steps if we can.
4if [ ! -f ".airdrop_skip" ]; then
5 nvm install
6 nvm use
7 yarn install --frozen-lockfile
8 npm run production
9 
10fi
11 
12php artisan airdrop:upload

Lastly, if for some reason you can’t work with the built-in Filesystem driver that ships with Airdrop (to upload and download assets), you can define a PHP class that extends the package’s BaseDriver:

1use Hammerstone\Airdrop\Drivers\BaseDriver;
2 
3class CustomDriver extends BaseDriver
4{
5 // Called after building, to stash the files somewhere.
6 public function upload(){}
7 
8 // Called before building files, to see if we can skip
9 public function download() {}
10}
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
Email ThisBlogThis!Share to XShare to Facebook

Related Posts:

  • Laravel Job Chainer  Job Chainer is a package to chain Laravel jobs without having to glue them together with a starting job. Job Chainer makes it possible to … Read More
  • Laravel Cashier for Openpay Billing Services The cashier-openpay package by Pedro Perafán provides an expressive, fluent interface to subscriptions using Openpay&nb… Read More
  • Vue Lazy Image Component Lazy Image is a Vue.js component to lazy-load an image automatically when it enters the viewport using the Intersection Observer API.U… Read More
  • Laravel Console Spinner Laravel Console Spinner is a custom spinning progress bar for Laravel inspired by the Symfony Console Spinner:This package is specifically … Read More
  • A package for PHP to interact with the GitHub Sponsors GraphQL API I'm very happy to say that Tom and I finally launched PHP GitHub Sponsors, a package for PHP to interact with the GitHub Sponsors… Read More
Newer Post Older Post Home

0 comments:

Post a Comment

Thanks

Meta

Popular Posts

  • Vue3 :style backgroundImage not working with require
    I'm trying to migrate a Vue 2 project to Vue 3. In Vue 2 I used v-bind style as follow: In Vue 3 this doesn't work... I tried a...
  • Spring boot app (error: method getFirst()) failed to run at local machine, but can run on server
    The Spring boot app can run on the online server. Now, we want to replicate the same app at the local machine but the Spring boot jar file f...
  • Enabling authentication in swagger
    I created a asp.net core empty project running on .net6. I am coming across an issue when I am trying to enable authentication in swagger. S...
  • Log activity in a Laravel app with Spatie/Laravel-Activitylog
      Requirements This package needs PHP 8.1+ and Laravel 9.0 or higher. The latest version of this package needs PHP 8.2+ and Laravel 8 or hig...
  • Laravel auth login with phone or email
          <?php     Laravel auth login with phone or email     <? php     namespace App \ Http \ Controllers \ Auth ;         use ...

Categories

  • Ajax (26)
  • Bootstrap (30)
  • DBMS (42)
  • HTML (12)
  • HTML5 (45)
  • JavaScript (10)
  • Jquery (34)
  • Jquery UI (2)
  • JqueryUI (32)
  • Laravel (1017)
  • Laravel Tutorials (23)
  • Laravel-Question (6)
  • Magento (9)
  • Magento 2 (95)
  • MariaDB (1)
  • MySql Tutorial (2)
  • PHP-Interview-Questions (3)
  • Php Question (13)
  • Python (36)
  • RDBMS (13)
  • SQL Tutorial (79)
  • Vue.js Tutorial (68)
  • Wordpress (150)
  • Wordpress Theme (3)
  • codeigniter (108)
  • oops (4)
  • php (853)

Social Media Links

  • Follow on Twitter
  • Like on Facebook
  • Subscribe on Youtube
  • Follow on Instagram

Pages

  • Home
  • Contact Us
  • Privacy Policy
  • About us

Blog Archive

  • September (100)
  • August (50)
  • July (56)
  • June (46)
  • May (59)
  • April (50)
  • March (60)
  • February (42)
  • January (53)
  • December (58)
  • November (61)
  • October (39)
  • September (36)
  • August (36)
  • July (34)
  • June (34)
  • May (36)
  • April (29)
  • March (82)
  • February (1)
  • January (8)
  • December (14)
  • November (41)
  • October (13)
  • September (5)
  • August (48)
  • July (9)
  • June (6)
  • May (119)
  • April (259)
  • March (122)
  • February (368)
  • January (33)
  • October (2)
  • July (11)
  • June (29)
  • May (25)
  • April (168)
  • March (93)
  • February (60)
  • January (28)
  • December (195)
  • November (24)
  • October (40)
  • September (55)
  • August (6)
  • July (48)
  • May (2)
  • January (2)
  • July (6)
  • June (6)
  • February (17)
  • January (69)
  • December (122)
  • November (56)
  • October (92)
  • September (76)
  • August (6)

  • Failed to install 'cordova-plugin-firebase': CordovaError: Uh oh - 9/21/2024
  • pyspark XPath Query Returns Lists Omitting Missing Values Instead of Including None - 9/20/2024
  • SQL REPL from within Python/Sqlalchemy/Psychopg2 - 9/20/2024
  • MySql Explain with Tobias Petry - 9/20/2024
  • How to combine information from different devices into one common abstract virtual disk? [closed] - 9/20/2024

Laravel News

  • Generate a Detailed Application Report with Laravel Decomposer - 5/23/2025
  • Streamline Conditional Logic with Laravel's Fluent Conditionable Trait - 5/18/2025
  • Sublime Text Releases Update With Support for Right Sidebar - 5/22/2025
  • Enhance Email Validation with Laravel's Fluent Email Rule Object - 5/18/2025
  • Locale-aware Number Parsing in Laravel 12.15 - 5/21/2025

Copyright © 2025 CoderFunda | Powered by Blogger
Design by Coderfunda | Blogger Theme by Coderfunda | Distributed By Coderfunda