Google Apps Script (GAS) 専用CLIツール clasp を利用することで、ブラウザ画面上ではなく、VS Codeなど任意のエディタでGASアプリの開発が可能になり、さらにはコマンドライン操作でのアプリのデプロイ、Gitでのソース管理も可能になります。

検証環境

  • Windows 10 Pro

インストール

コマンドライン操作は PowerShell で実行しました。

Node.js & npm インストール

  • Node.js インストーラ
  • Node.js と同時に npm もインストールされる
    1
    2
    3
    4
    5
    
    node -v
    # v12.18.0
    
    npm -v
    # 6.14.4
    

clasp インストール

  • インストール
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    npm install -g @google/clasp
    
    # C:\Users\hoge\AppData\Roaming\npm\clasp ->  C:\Users\hoge\AppData\Roaming\npm\node_modules\@google\clasp\src\index.js
    # npm WARN inquirer-autocomplete-prompt@1.0.1 requires a peer of inquirer@^5.0.0 || ^6.0.0 but none   is installed. You must install peer dependencies yourself.
    
    # + @google/clasp@2.3.0
    # added 160 packages from 92 contributors in 14.381s
    
    clasp -v
    # 2.3.0
    
  • 依存関係のあるパッケージがインストールされる
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    npm list
    
    # C:\Users\hoge\AppData\Roaming\npm
    # `-- @google/clasp@2.3.0
    #   +-- chalk@2.4.2 extraneous
    #     ・・・
    #   +-- googleapis@42.0.0 extraneous
    #   +-- UNMET PEER DEPENDENCY inquirer@7.2.0 extraneous
    #   +-- inquirer-autocomplete-prompt@1.0.1 extraneous
    #     ・・・
    #   `-- watch@1.0.2 extraneous
    
    #   npm ERR! peer dep missing: inquirer@^5.0.0 || ^6.0.0, required by inquirer-autocomplete-prompt@1.0.1
    #     ・・・
    
  • WARN (UNMET PEER DEPENDENCY) が出たので、inquirer@6.0.0 を追加しました
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    npm install inquirer@6.0.0
    
    # npm notice created a lockfile as package-lock.json. You should commit this file.
    # + inquirer@6.0.0
    # removed 9 packages, updated 12 packages, moved 1 package and audited 151 packages in 2.061s
    
    # 5 packages are looking for funding
    # run `npm fund` for details
    
    # found 0 vulnerabilities
    

Google Apps Script 連携

  • Google Apps Script API 有効化
  • アカウント連携
    1
    
    clasp login
    

    ブラウザが起動するので、Googleアカウントへログイン&APIアクセス許可する
    次の表示になればOK

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    【ブラウザ】
    Logged in! You may close this page.
    
    【CLI】
    Logging in globally...
    Authorize clasp by visiting this url:
    https://accounts.google.com/o/oauth2/v2/auth?・・・
    
    Authorization successful.
    
    Default credentials saved to: ~\.clasprc.json (C:\Users\hoge\.clasprc.json).
    

clasp の使い方

GASプロジェクトのクローン・フェッチ

  • Webエディタ > ファイル > プロジェクトのプロパティ > 情報 から スクリプトID を確認しておく
    1
    2
    
    clasp clone [スクリプトID]
    clasp pull
    

GASプロジェクトのプッシュ

  • .clasp.json が存在するディレクトリで実行する
    1
    
    clasp push
    
  • アップロード可能なファイル
    • *.gs
    • *.html
    • appscript.json
  • アップロードしないファイル
    • .claspignore ファイルに記述

参考