透過 clasp 使用指令列介面

如要透過終端機 (而非 Apps Script 編輯器) 開發及管理 Apps Script 專案,您可以使用名為 clasp 的開放原始碼工具。

clasp 程式碼研究室提供所有 clasp 功能的總覽。

功能

在本機開發

clasp 可讓您在本機開發 Apps Script 專案。您可以在自己的電腦上編寫程式碼,完成後再上傳至 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 是以 Node.js 編寫,並透過 npm 工具發布。使用 clasp 之前,您必須安裝 Node.js 4.7.4 以上版本。您必須具備管理員權限才能安裝 Node.js。

安裝

安裝 Node.js 後,即可使用以下 npm 指令安裝 clasp

npm install @google/clasp -g

安裝完成後,您可以在電腦的任何目錄中使用 clasp 指令。

使用了 clasp

您可以使用 clasp 處理來自指令列的各種工作。本節說明透過 clasp 進行開發時可使用的常見作業。

登入

這個指令會登入並授權管理您 Google 帳戶的 Apps Script 專案。執行後,系統會要求您登入儲存 Apps Script 專案的 Google 帳戶。

clasp login

登出

此指令會登出指令列工具。如要繼續使用 clasp,您必須使用 clasp login 重新登入 Google 來重新驗證。

clasp logout

建立新的 Apps Script 專案

這個指令會在目前的目錄中建立新的指令碼,並包含選用的指令碼標題。

clasp create [scriptTitle]

這個指令也會在目前的目錄中建立兩個檔案:

  • 儲存指令碼 ID 的 .clasp.json 檔案。
  • 包含專案中繼資料的 appsscript.json 專案資訊清單檔案。

複製現有專案

這個指令會複製目前目錄中的現有專案。指令碼必須建立或提供給您的 Google 帳戶。您可以自行提供指令碼 ID,指定要複製的指令碼專案。

如要找出專案的指令碼 ID,請按照下列步驟操作:

  1. 開啟 Apps Script 專案。
  2. 按一下左側的「專案設定」圖示
  3. 複製「ID」下方的指令碼 ID。

     clasp clone <scriptId>
    

下載指令碼專案

這個指令會將 Apps Script 專案從 Google 雲端硬碟下載到電腦的檔案系統。

clasp pull

上傳指令碼專案

這個指令會從您的電腦將指令碼專案的所有檔案上傳至 Google 雲端硬碟。

clasp push

列出專案版本

這個指令會列出每個指令碼專案版本的數字和說明。

clasp versions

部署已發布的專案

你可以將指令碼專案部署為網頁應用程式、外掛程式或執行檔。您可以在指令碼編輯器、專案資訊清單中,或使用 clasp 建立部署作業

如要使用 clasp 部署專案,請先建立 Apps Script 專案的不可變更版本。版本是指令碼專案的「快照」,類似唯讀分支版本版本。

clasp version [description]

這個指令會顯示新建立的版本號碼。然後使用該號碼部署和取消部署專案的執行個體:

clasp deploy [version] [description]
clasp undeploy <deploymentId>

這個指令會將現有的部署作業更新為新版本和說明:

clasp redeploy <deploymentId> <version> <description>

列出部署作業

這個指令會列出指令碼專案的部署 ID、版本及說明。

clasp deployments

在 Apps Script 編輯器中開啟專案

這個指令會在 Apps Script 編輯器中開啟指令碼專案。編輯器會在預設網路瀏覽器中以新分頁的形式啟動。

clasp open

clasp 開放原始碼專案貢獻心力

前往 GitHubclasp 貢獻心力。