要件
- 色々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を送る
コマンド例
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
参考資料
- Allow manifest, file list via CLI · Issue #38 · google/clasp · GitHub
- Support options to specify dotfiles · Issue #12 · google/clasp · GitHub
- Multiple project push · Issue #50 · google/clasp · GitHub
- Allow pushing to multiple script id's · Issue #349 · google/clasp · GitHub
- Apps Script | Google for Developers