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.
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.