在 GASO 專案的整個開發過程中,有一個工具讓我深深感受到開發效率的巨大提升,那就是 clasp。這個看似簡單的命令列工具,卻徹底改變了我對 Google Apps Script 開發的認知。
今天,我想與大家分享這個開發神器,以及它如何讓我們的 GASO 專案開發變得更加高效和專業。
clasp(Command Line Apps Script Projects)是 Google 官方提供的命令列工具,讓開發者可以在本地環境中開發 Google Apps Script 專案,並輕鬆同步到 Google 雲端。
# clasp 的全名
Command Line Apps Script Projects
在沒有 clasp 之前,Google Apps Script 的開發流程是這樣的:
A[在瀏覽器中開啟 Apps Script] --> B[在線上編輯器中寫程式碼]
B --> C[儲存並測試]
C --> D[發現錯誤]
D --> E[回到編輯器修改]
E --> F[重複儲存測試]
F --> G[版本管理困難]
G --> H[協作開發困難]
這種方式存在以下問題:
有了 clasp 之後,開發流程變成:
A[在本地 IDE 中開發] --> B[使用 Git 進行版本控制]
B --> C[clasp push 同步到雲端]
C --> D[在雲端測試]
D --> E[發現問題]
E --> F[在本地修改]
F --> G[clasp push 更新]
G --> H[享受現代化開發體驗]
clasp 是基於 Node.js 的工具,所以首先需要安裝 Node.js:
# 檢查 Node.js 是否已安裝
node --version
npm --version
如果沒有安裝,請到 Node.js 官網 下載並安裝。
# 全域安裝 clasp
npm install -g @google/clasp
# 登入 Google 帳號
clasp login
這個命令會:
# 建立新的 Apps Script 專案
clasp create --type webapp --title "我的專案"
# 連結到現有的 Apps Script 專案
clasp clone <script-id>
# 建立不同類型的專案
clasp create --type webapp --title "網頁應用程式"
clasp create --type standalone --title "獨立腳本"
clasp create --type docs --title "文件附加腳本"
clasp create --type sheets --title "試算表附加腳本"
clasp create --type slides --title "簡報附加腳本"
clasp create --type forms --title "表單附加腳本"
# 列出所有 Apps Script 專案
clasp list
# 在瀏覽器中開啟專案
clasp open
# 將本地檔案推送到 Google Apps Script
clasp push
# 從 Google Apps Script 拉取最新檔案
clasp pull
# 監控檔案變化並自動推送
clasp push --watch
--watch ➜ 開啟「監聽模式」,持續監控本地檔案的變動,當你修改並儲存檔案時,它會自動再次執行 clasp push。
# 建立新的部署
clasp deploy
# 列出所有部署
clasp deployments
# 更新指定版本的部署
clasp deploy --deploymentId <deployment-id>
# 建立新版本
clasp version
# 列出所有版本
clasp versions
在 GASO 專案中,我們使用 clasp 來管理整個專案:
# 建立 GASO 專案
clasp create --type webapp --title "GASO - Google Apps Script Odyssey"
這會建立一個新的 Google Apps Script 專案,並在本地產生 .clasp.json
檔案:
{
"scriptId": "1ABC...XYZ",
"rootDir": "./"
}
GASO 專案的檔案結構:
GASO/
├── .clasp.json # clasp 設定檔
├── appsscript.json # Apps Script 設定檔
├── code.js # 主要程式碼
├── index.html # 前端頁面
├── gas_prompts.csv # 提示詞資料
└── image/ # 圖片資源
├── circo_sample.png
├── dot_sample.png
└── ...
# 1. 開始開發前,先拉取最新版本
clasp pull
# 2. 在本地 IDE 中開發
# 使用 VS Code 或其他 IDE 進行開發
# 3. 開發完成後,推送到雲端
clasp push
# 4. 在瀏覽器中測試
clasp open
# 1. 確保所有變更都已推送
clasp push
# 2. 建立新版本
clasp version "v1.0.0 - 完成基本功能"
# 3. 部署到生產環境
clasp deploy
# 1. 開發者 A 推送變更
clasp push
git add .
git commit -m "新增搜尋功能"
git push
# 2. 開發者 B 拉取變更
git pull
clasp pull
# 3. 開發者 B 進行開發
# 修改程式碼...
# 4. 開發者 B 推送變更
clasp push
git add .
git commit -m "優化搜尋演算法"
git push
// 不要將敏感資訊寫在程式碼中
// ❌ 錯誤做法
const API_KEY = "your-secret-key";
// ✅ 正確做法
const API_KEY = PropertiesService.getScriptProperties()
.getProperty('API_KEY');
項目 | 傳統方式 | clasp 方式 |
---|---|---|
編輯器 | 瀏覽器內建編輯器 | 任何現代 IDE |
版本控制 | 手動管理 | Git 整合 |
除錯 | 基本除錯功能 | 完整除錯支援 |
部署 | 手動操作 | 命令列自動化 |
協作 | 困難 | 標準 Git 流程 |
A[VS Code] --> B[Git]
B --> C[clasp]
C --> D[Google Apps Script]
D --> E[自動部署]
E --> F[生產環境]
A[本地開發] --> B[Git Commit]
B --> C[GitHub Push]
C --> D[GitHub Actions]
D --> E[clasp Deploy]
E --> F[Google Apps Script]
F --> G[自動測試]
G --> H[生產部署]
# 標準的團隊協作流程
git clone <repository>
clasp login
clasp clone <script-id>
npm install
# 開始開發...
# 1. 建立功能分支
git checkout -b feature/new-feature
# 2. 開發並提交
git add .
git commit -m "新增功能"
git push origin feature/new-feature
# 3. 建立 Pull Request
# 4. 程式碼審查
# 5. 合併到主分支
# 6. 自動部署
經過 28 天的 GASO 專案開發,我深深體會到 clasp 這個工具帶來的巨大價值。它不僅僅是一個命令列工具,更是 Google Apps Script 開發現代化的關鍵。
對於所有 Google Apps Script 開發者,我強烈建議:
隨著 clasp 的不斷發展,我相信 Google Apps Script 的開發體驗會越來越好。也許在不久的將來,我們會看到:
clasp 不僅改變了我們的開發方式,更開啟了 Google Apps Script 開發的新時代。
在 GASO 專案的開發過程中,clasp 讓我們能夠:
這一切,都讓我們的開發效率提升了數倍,也讓 GASO 專案能夠以更專業、更高效的方式完成。
感謝 clasp,讓 Google Apps Script 開發變得如此美好!
如果想要看一些我鐵人賽之外的 Google Apps Script 分享,
也歡迎追蹤我的 Threads 和 Facebook