clasp - Apps Script CLI

1. 簡介

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

功能

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

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

課程內容

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

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

2. 踏出第一步

下載 CLI

Apps Script CLI (clasp) 需要安裝 Node.js。在此安裝 Node.js

安裝 Node 後,請全域安裝 CLI (別名為 clasp):

npm i @google/clasp -g

3. 啟用 Apps Script API

如要使用 Clasp,請先在 Apps Script IDE 中啟用 Google Apps Script API

4. 登入

登入

讓我們試試 clasp!你只需要記住 clasp 這個指令。

clasp

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

clasp login

或使用 SSH:

clasp login --no-localhost

此時,系統會提示您登入 Google。您使用 CLI 建立的任何專案,都會與這個 Google 帳戶建立關聯。

5. 建立新專案

建立獨立專案

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

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

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

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

讓我們試著為 Google 簡報外掛程式建立容器繫結指令碼。

如要這麼做,請前往 slides.google.com 並建立新簡報。將簡報名稱變更為「clasp Codelab Test」。在 Google 簡報的選單列中,依序選取「擴充功能」 >「Apps Script」

這會開啟 script.google.com 的 Apps Script 專案。

為專案建立新目錄,然後 cd 到該目錄。

mkdir clasp_codelab_test
cd clasp_codelab_test

如要複製專案,我們需要 Script ID。您可以在 Apps Script 專案網址的 /projects/ 後方找到這個 ID。複製該值,並貼到下列指令中:

clasp clone <scriptID>

輸出內容應如下所示:

4e3b128f4dcf6467.gif

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

6. 提取及推送檔案

在 script.google.com 編輯程式碼

現在您已能複製專案,接著來瞭解如何提取及推送檔案。我們會逐步說明如何透過 script.google.com 在雲端編輯,然後提取到電腦本機。請在雲端開啟指令碼:

clasp open-script

現在我們已進入線上編輯器,接下來要線上編輯一些程式碼,稍後會使用 clasp 擷取這些程式碼。

如要建立新的 Apps Script 檔案,請在編輯器左側的「檔案」旁,依序點選「新增檔案」圖示 新增檔案>「指令碼」。輸入名稱 utils/strings。在新建的 utils/strings.gs 檔案中,將程式碼替換為下列內容:

var world = "世界";

Code.gs 中,將現有程式碼替換為下列程式碼:

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

按一下頂端的「儲存」。

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

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

在本機編輯程式碼

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

clasp pull

現在返回程式碼。您應該會發現 utils 的資料夾clasp CLI 會自動將斜線字元 / 轉換為本機檔案系統上的資料夾。

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

clasp push

這樣就完成了!您的程式碼現已在 script.google.com 上更新。

7. 版本管理與部署

clasp 可讓您管理版本和部署作業。首先,請先瞭解一些詞彙:

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

現在來建立指令碼版本:

clasp create-version "First version"

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

clasp create-deployment 1 "First deployment"

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

8. 這樣就大功告成了!

我們希望 Apps Script CLI 成為簡單易用的工具,協助您管理 Apps Script 專案。

涵蓋內容

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

Clasp 可在 GitHub 上取得,歡迎使用新功能和修補程式。

期待您的開發成果!