透過 clasp 使用指令列介面

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

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

功能

在本機開發

clasp 可讓您在本機開發 Apps Script 專案。您可以在自己的電腦上編寫程式碼,完成後再上傳至 Apps Script。您也可以下載現有的 Apps Script 專案,以便在離線時編輯。由於程式碼是本機程式碼,因此您可以在建構 Apps Script 專案時使用慣用的開發工具,例如 git

管理部署作業版本

建立、更新及查看專案的多個部署作業

結構程式碼

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 開放原始碼專案

協助改善 GitHub 上的 clasp