Study
Foundry

Forge Build & Kompilasi

Penjelasan

Perintah `forge build` mengompilasi seluruh contract Solidity di folder `src/` (dan dependency yang di-import) menggunakan compiler versi yang ditentukan di foundry.toml. Hasil kompilasi disimpan di folder `out/`, berisi file JSON per contract yang memuat ABI, bytecode, dan metadata lainnya. Forge otomatis mendeteksi versi compiler yang dibutuhkan berdasarkan pragma di file Solidity, dan akan mengunduh binary solc yang sesuai jika belum ada di cache lokal. Kompilasi bersifat inkremental — file yang tidak berubah tidak akan dikompilasi ulang, membuat proses build sangat cepat setelah build pertama.

Contoh Konsep

# Kompilasi seluruh contract di src/
forge build

# Output contoh:
# [⠊] Compiling...
# [⠒] Compiling 1 files with 0.8.20
# [⠢] Solc 0.8.20 finished in 1.02s
# Compiler run successful!

# Kompilasi ulang paksa (mengabaikan cache)
forge build --force

# Lihat ukuran bytecode tiap contract
forge build --sizes

Praktikum

Kompilasi contract Counter.sol bawaan project, lalu cek ukuran bytecode-nya dengan flag --sizes.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Kalau kompilasi terasa lambat setelah update dependency, coba `forge clean` dulu untuk membersihkan cache sebelum build ulang.