clasp - Apps Script CLI

1. 簡介

Apps Script CLI (或簡稱 clasp) 這項工具可讓您在本機建立、編輯和部署 Apps Script 專案。可讓您透過指令列為試算表、文件、表單和簡報等產品建立及發布網頁應用程式和外掛程式。有兩種方法可讓您使用 Script.google.com 或從電腦本機開發 Apps Script。我們會學習後者,瞭解如何使用 Apps Script 的指令列工具 clasp

功能

  • 在本機開發。clasp 可讓您在自己的電腦上編寫程式碼,並在完成後上傳到 Apps Script。您也可以下載現有的 Apps Script 專案,然後在本機編輯。取得本機程式碼後,您可以使用慣用的開發工具 (例如 git) 處理 Apps Script 專案。
  • 管理部署作業版本。建立、更新及查看專案的多個部署項目。
  • 建構程式碼:clasp 可將指令碼.google.com 上的一般專案自動轉換成資料夾。例如:
# On script.google.com:
├── tests/slides.gs
└── tests/sheets.gs

# Locally:
├── tests/
│   ├─ slides.gs
│   └─ sheets.gs

課程內容

本程式碼研究室將說明如何使用 clasp 執行 3 項重要活動:

  • 如何建立新的 Apps Script 專案
  • 如何複製、提取及推送現有專案
  • 如何管理指令碼的部署作業

2. 踏出第一步

下載 CLI

您必須安裝 Node.js 6.0.0 以上版本,才能使用 Apps Script CLI (clasp)。在這裡安裝 Node.js

有節點後,請在全域安裝 CLI (別名 clasp):

npm i @google/clasp -g

3. 登入

登入

試試夾扣!唯一需要記住的指令是 clasp

clasp

開始使用命令列工具前,必須先登入。執行下列指令:

clasp login

或使用 SSH:

clasp login --no-localhost

此時,系統會提示您登入 Google。您透過 CLI 建立的所有專案都會與這個 Google 帳戶相關聯。

4. 建立新專案

建立獨立專案

請先使用下列指令建立獨立的 Google Apps Script 專案:

mkdir clasp_codelab;
cd clasp_codelab;
clasp create --title "Clasp Codelab"  --type standalone;

您剛剛在「clasp_codelab」資料夾中建立了 Apps Script 專案!

(選用替代方法) 複製現有專案

我們可以嘗試為 Google 簡報外掛程式建立 container-bound 指令碼。

方法是前往 slides.google.com 建立新簡報。將簡報名稱變更為「clasp Codelab Test」。在標頭中的「工具」下方,按下「指令碼編輯器...」

系統隨即會在 script.google.com 開啟您的 Apps Script 專案。如要複製專案,需要 Script ID。您可以在 Apps Script 專案網址的 /projects/ 後方找到這個 ID。複製該值並貼到下列指令中:

clasp clone <scriptID>

輸出內容應如下所示...

4e3b128f4dcf6467.gif

現在您已下載目前目錄中的專案。使用您最愛的編輯器查看 Code.gs 的內容 (空白函式)。

5. 提取 &推送檔案

前往 Script.google.com 編輯程式碼

現在您可以複製專案,接著我們來學習如何提取及推送檔案。我們會逐步引導您透過 script.google.com 在雲端編輯,並將內容提取至本機。在雲端開啟指令碼:

clasp open

現在我們已連上線上編輯器,我們會在線上編輯一些程式碼,稍後使用 clasp 擷取。

如要建立新的 Apps Script 檔案,請在編輯器左側,按一下「檔案」旁邊的「新增檔案」圖示 新增檔案>指令碼:輸入名稱 utils/strings。在新建立的檔案 (utils/strings.gs) 中,將程式碼替換成以下程式碼:

var world = "世界";

Code.gs 中,將現有程式碼取代為以下內容:

function hello() {
  Logger.log("Hello, " + world);
}

按一下頂端的「儲存」。

如要執行函式,請在編輯器頂端的函式下拉式清單中選取 hello,然後按一下「Run」(執行)

問候語會顯示在執行記錄的底部。

在本機編輯程式碼

請返回上次複製專案的指令列。您可能會發現我們的程式碼與線上編輯器不同步。如要解決這個問題,請從線上專案擷取程式碼。

clasp pull

現在返回程式碼。您應該會看見我們公用程式的資料夾clasp CLI 會自動將斜線字元 / 轉換為本機檔案系統中的資料夾。

在您偏好的文字編輯器中,前往 util/strings.gs,並將變數名稱 world 替換為 mondo。此外,請將 world 替換為 mondo,藉此更新 Code.gs。如要在 script.google.com 上更新更新後的程式碼,請推送編輯過的程式碼。

clasp push

大功告成!程式碼已更新為 script.google.com

6. 版本管理與部署

clasp 可讓您管理版本和部署作業。首先介紹一些詞彙:

  • 版本:「快照」編寫程式碼版本可視為用於部署作業的唯讀分支版本。
  • 部署作業:指令碼專案的已發布版本 (通常是外掛程式或網頁應用程式)。需要版本號碼。

建立指令碼版本:

clasp version "First version"

使用我們建立的記錄版本字串取代 [version],即可部署指令碼:

clasp deploy 1 "First deployment"

clasp deploy 指令會查看您的資訊清單,並建立新版本的 Deployment。您的程式碼現已部署為執行檔。詳情請參閱部署指南

7. 這樣就大功告成了!

我們希望 Apps Script CLI 能成為您管理 Apps Script 專案的簡易工具。

涵蓋內容

  • 如何建立新的 Apps Script 專案
  • 如何複製、推送及提取現有專案
  • 如何管理指令碼的部署作業

您可以在 GitHub 取得 Clasp,取得新功能和修補程式。

希望很快就能看到您打造的傑作!