学習バンザイITエンジニアの精神安穏日記

ITエンジニアというより、IT系雑務者

clasp使ったときのメモ(複数プロジェクトを複数環境で運用する方法など)

要件

  • 色々GASを作って、1つのリポジトリで管理したい。
  • 本番環境に直でアップロードする前に、検証環境で試したい。

1. 複数のプロジェクトを管理する

GitHub - google/clasp: 🔗 Command Line Apps Script Projects

公式によると、--rootDirオプションで保存するディレクトリを指定できる。

Local directory in which clasp will store your project files. If not specified, clasp will default to the current directory.

clasp がプロジェクトファイルを保存するローカルディレクトリです。指定しない場合、デフォルトはカレントディレクトリです。

コマンド例

clasp create --rootDir apps/<project1>/
clasp create --rootDir apps/<project2>/
clasp clone --rootDir apps/<project1>/
clasp clone --rootDir apps/<project2>/

2. 複数の環境にGASを送る

  1. stagingとproduction用のclasp.jsonファイルを用意する。
  2. その後、clasp.jsonコピーする

コマンド例

cp ./apps/main/.clasp.staging.json ./clasp.json
clasp push

cp ./apps/main/.clasp.staging.json ./clasp.json
clasp push

便利なデプロイコマンド

下記のコマンドをpackage.jsonに追加すると便利

  "scripts": {
    "stg-push": "cp ./apps/main/.clasp.staging.json .clasp.json && clasp push -f",
    "push": "cp ./apps/main/.clasp.production.json .clasp.json && clasp push -f"
  }

コマンド実行例

npm run stg-push

参考資料