Skip to content

Catatan prosedur untuk build assets sebelum deployment #26

Closed
@feryardiant

Description

@feryardiant

Terkait penggunaan inertia.js pada implementasi saat ini kita perlu meng-generate definisi routes terlebih dahulu menggunakan composer ziggy:generate untuk mendapatkan list router terbaru sebelum melakukan pnpm build. Menjadikan ini rawan sekali lupa, terlebih jika dalam proses pengerjaan kita tengah menambahkan beberapa routing, lalu lupa menjalankan ziggy:generate sebelum build maka kita tidak akan mendapatkan versi routing yang terbaru.

Disamping itu melihat output dari ziggy:generate ini akan menghasilkan full URL dari APP_URL, menjadikan kita perlu melakukan generate sesuai dengan environment yang akan dituju. Contoh ketika kita butuh "local build" kita cukup dengan melakukan command berikut :

composer ziggy:generate
pnpm build

Command tersebut akan memanfaatkan APP_URL dari file .env yang mana adalah local url dari setiap contributor. Hal tersebut menjadikan file hasil compile tidak bisa langsung di deploy, karna pasti akan bermasalah dengan URL endpoint yang digunakan oleh front-end.

Solusi saat ini adalah dengan melakukan ziggy:generate dan build sesuai dengan environment yang dibutuhkan. Misal kita perlu melakukan deployment ke server staging, kita harus menyiapkan file .env.staging yang berisi :

APP_ENV=staging
APP_URL=https://skeleton.creasi.dev
APP_DEBUG=false

File .env.staging tersebut bertukan sebagai overwrite untuk beberapa value di .env yang dibutuhkan di server staging. Setelah itu kita beru bisa jalankan command berikut ini :

composer ziggy:generate -- --env staging
pnpm build --mode staging

Dalam proses tersebut baik dari sisi laravel ataupun vite akan secara otomatis merge value dari .env dan .env.staging untuk menghasilkan output yang dibutuhkan oleh server staging.

Metadata

Metadata

Assignees

No one assigned

    Labels

    UIThe way a product lookschoreA task that needs to be doneexperienceThe way users interact with the productintegrationWhen multiple functionalities should works together

    Type

    No type

    Projects

    Status

    ✅ Done

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions