Episode ini membahas tooling dan build automation di NestJS: Nest CLI, TypeScript compiler, dan ts-node; build pipeline dengan npm dan Docker; static analysis, linting, dan formatting; serta reproducible builds dan setup multi-environment.

Alat yang tepat membuat pengembangan lebih cepat dan lebih aman. NestJS hadir dengan toolchain yang lengkap: Nest CLI, TypeScript, ESLint, Prettier, dan build pipeline yang terotomatisasi. Episode 19 membahas tooling modern dan build automation.
Kalian akan memahami cara kerja setiap alat dan bagaimana menyusun pipeline build yang reproducible.
Nest CLI adalah alat utama pengembangan NestJS:
nest --helpPerintah penting: nest new untuk project baru, nest generate (alias nest g) untuk membuat module, controller, service, dan banyak lagi. CLI juga membangun dan menjalankan aplikasi.
Proyek NestJS memakai tsc untuk mengompilasi TypeScript ke JavaScript:
nest buildnest build menjalankan TypeScript compiler dan menaruh hasilnya di folder dist. File tsconfig.json mengontrol perilaku kompilasi — module resolution, target ES, dan strict mode.
ts-node menjalankan TypeScript secara langsung tanpa kompilasi penuh:
npm run start:devPerintah start:dev memakai nest start --watch, yang mengombinasikan kompilasi incremental dan restart otomatis saat file berubah — membuat loop development menjadi cepat.
package.json mendefinisikan script build dan run:
{
"scripts": {
"build": "nest build",
"start": "nest start",
"start:dev": "nest start --watch",
"start:prod": "node dist/main.js",
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\"",
"format": "prettier --write \"src/**/*.ts\""
}
}Pipeline build standar: npm run build untuk kompilasi, npm run lint untuk memeriksa kualitas, lalu npm run start:prod untuk menjalankan hasil build.
Untuk deployment, build dilakukan di dalam Docker. Image multi-stage mengompilasi lalu menyalin hasilnya ke image runtime yang kecil. Detail lengkapnya ada di episode 20 — yang penting di sini: build harus reproducible, artinya hasilnya identik di mesin mana pun.
ESLint adalah static analysis tool yang menangkap bug dan pelanggaran gaya:
npm run lintNestJS memakai konfigurasi ESLint dari eslint-config-next-style TypeScript. Lint bisa dijalankan di CI untuk memblokir merge kode yang bermasalah.
Prettier memformat kode secara konsisten:
npm run formatDengan Prettier, seluruh tim menulis format identik — menghilangkan perdebatan gaya dan membuat diff Git lebih bersih.
strict: true di tsconfig.json mengaktifkan pemeriksaan tipe yang ketat. Ini menangkap banyak bug potensial saat kompilasi, sebelum kode sampai ke production.
Reproducibility dimulai dari dependency yang terkunci:
package-lock.jsonLockfile mencatat versi persis setiap dependency. Dengan npm ci, instalasi selalu identik dengan yang tercatat di lockfile — menghilangkan kejutan "berhasil di mesin saya tapi gagal di CI".
Satu codebase, banyak environment: development, staging, dan production. Setiap environment memakai nilai konfigurasi yang berbeda (lihat episode 8) tetapi kode dan dependensi yang identik. Build yang sama bisa di-promote dari staging ke production tanpa di-build ulang — inilah kekuatan reproducible builds.
Episode 19 menguatkan toolchain kalian: Nest CLI, TypeScript compiler, ts-node, build pipeline npm dan Docker, static analysis, linting, formatting, dan reproducible builds.
Inti yang harus dibawa pulang:
nest build mengompilasi TypeScript ke dist.nest start --watch memberi loop development yang cepat.npm ci menjamin instalasi identik.Di episode 20 selanjutnya kita akan membahas containerization dan cloud deployment — Dockerizing aplikasi NestJS, deployment Kubernetes dan health checks, serverless dengan AWS Lambda atau Cloud Functions, serta integrasi cloud provider AWS, GCP, dan Azure.