Apa itu Clasp?
Clasp (Command Line Apps Script Projects) adalah CLI resmi dari Google untuk mengelola project Apps Script dari terminal. Dengan Clasp, Anda bisa:
- Develop Apps Script pakai editor favorit (VS Code, Vim, dll)
- Pakai TypeScript (compile otomatis ke JavaScript)
- Version control dengan Git
- Deploy otomatis via CI/CD
Jargon yang Perlu Diketahui:
- CLI (Command Line Interface): Program yang dijalankan lewat terminal/command prompt, bukan GUI
- TypeScript: Superset JavaScript dengan type checking, compile jadi JavaScript biasa
- CI/CD: Continuous Integration/Continuous Deployment - otomasi testing & deployment
Prasyarat
Sebelum mulai, pastikan sudah install:
- Node.js v16+ (Download di sini)
- npm (otomatis terinstall bareng Node.js)
- Akun Google dengan akses Apps Script
Langkah 1: Install Clasp
Buka terminal, jalankan:
npm install -g @google/clasp
Verifikasi instalasi:
clasp --version
Jika muncul nomor versi (misal 2.4.2), berarti berhasil.
Langkah 2: Login ke Google
clasp login
Browser akan terbuka, pilih akun Google Anda, klik Allow. Setelah berhasil, terminal akan bilang “Authorization successful”.
Troubleshooting:
- Jika error “browser tidak terbuka”, coba
clasp login --no-localhost - Jika error “permission denied”, pastikan akun Google Anda tidak dibatasi oleh admin workspace
Langkah 3: Buat Project Baru
Ada 3 tipe project Apps Script:
| Tipe | Fungsi |
|---|---|
standalone | Script independen, tidak terikat file Google |
sheets | Terikat ke Google Sheets |
docs | Terikat ke Google Docs |
Untuk project standalone:
clasp create --type standalone --title "My First Script"
Clasp akan buat file .clasp.json (konfigurasi project) dan folder kosong.
Langkah 4: Tulis Kode
Buat file src/Code.ts:
function helloWorld() {
Logger.log("Hello from Clasp!");
}
function onOpen() {
SpreadsheetApp.getUi()
.createMenu("Custom Menu")
.addItem("Run Hello", "helloWorld")
.addToUi();
}
Penjelasan:
Logger.log(): Print output ke log Apps Script (bukan console browser)onOpen(): Trigger otomatis saat file dibukaSpreadsheetApp.getUi(): Akses UI Google Sheets untuk bikin custom menu
Langkah 5: Push ke Apps Script
clasp push
File lokal Anda akan di-upload ke Apps Script cloud. Jika ada error TypeScript, Clasp akan berhenti dan kasih tahu error-nya.
Langkah 6: Buka di Editor
clasp open
Browser akan buka Apps Script Editor. Di sana Anda bisa:
- Lihat kode yang di-push
- Setup trigger (onEdit, onFormSubmit, dll)
- Test function manual
Langkah 7: Deploy sebagai Web App (Opsional)
Jika mau bikin Apps Script jadi API/web app:
clasp deploy --description "Version 1.0"
Clasp akan kasih deployment ID. Simpan ID ini untuk rollback atau update nanti.
Workflow Harian
Setelah setup awal, workflow Anda jadi:
- Edit kode di lokal (VS Code)
clasp pushuntuk upload- Test di Apps Script Editor
- Commit ke Git
- Ulangi
Kelebihan workflow ini:
- Pakai editor favorit (autocomplete, linting, dll)
- Version control dengan Git
- Bisa kerja offline
Kekurangan/Risiko:
- Harus manual
clasp pushtiap kali ubah kode (bisa lupa) - Jika push tanpa test, bisa break production
- Perlu disiplin commit Git sebelum push
Tips & Trik
1. Ignore File Tertentu
Buat file .claspignore:
node_modules/**
*.md
.git/**
File-file ini tidak akan di-push ke Apps Script.
2. TypeScript Configuration
Buat tsconfig.json:
{
"compilerOptions": {
"target": "ES2019",
"module": "ES2015",
"lib": ["ES2019"]
}
}
3. Automation dengan GitHub Actions
Buat file .github/workflows/deploy.yml:
name: Deploy to Apps Script
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- run: npm install -g @google/clasp
- run: echo "$CLASP_CREDENTIALS" > ~/.clasprc.json
env:
CLASP_CREDENTIALS: ${{ secrets.CLASP_CREDENTIALS }}
- run: clasp push
[ASUMSI: Anda sudah familiar dengan GitHub Actions. Jika belum, skip bagian ini dulu.]
FAQ
Apakah Clasp gratis?
Ya, Clasp adalah open-source dan gratis. Tapi quota Apps Script tetap berlaku (6 menit execution time per trigger, 20,000 email per hari, dll).
Bisa deploy ke multiple environments (dev/staging/prod)?
Tidak directly. Clasp hanya punya 1 .clasp.json per folder. Solusi: buat 3 folder berbeda atau pakai deployment ID untuk switch.
Bagaimana cara rollback deployment?
Clasp tidak punya command rollback. Anda harus manual di Apps Script Editor → Manage Deployments → pilih versi lama.
Apakah bisa collaborative coding dengan tim?
Ya, asalkan semua anggota tim punya akses Editor ke Apps Script project yang sama. Tapi hati-hati conflict jika push bersamaan.
Butuh bantuan setup yang lebih kompleks? Saya (mbah) bisa kerjakan secara Done-For-You, termasuk CI/CD pipeline, testing, dan monitoring. Lihat layanan DFY →