仕事でやることになったので自分用にまとめる
前提条件
- VSCodeがインストールされている
- Node.jsがインストールされている (npm が使える)
GoogleAppsScriptAPIの有効化
下記リンクからGoogleAppsScriptAPIを有効化する。
GoogleAppsScriptAPIの設定画面
これで外部からAppsScriptを操作できるようになる。
asideを用いたプロジェクト作成
asideでできる環境の特徴
- claspの設定がなされている
- 快適にTypescriptで記述できるような環境である (デプロイ時には自動コンパイルされる)
- ESLint,Prettierの設定がなされている
- Jestによるテスト環境が整っている
- 開発環境と本番環境を簡単に切り替えができる設定がなされている
作成
プロジェクト用のディレクトリを作っておく
$ mkdir gas_sample
$ cd gas_sample
プロジェクト作成
対話式で設定を聞かれるので答えながら進める
# プロジェクト作成
$ npx @google/aside init
? Project Title: › gas_sample
? Generate package.json? › No / Yes
✔ Adding scripts...
✔ Saving package.json...
✔ Installing dependencies...
✔ Installing src template...
✔ Installing test template...
✔ Script ID (optional): …
✔ Script ID for production environment (optional): …
✔ Creating gas_sample...
-> Google Sheets Link: https://drive.google.com/open?id=sheetId
-> Apps Script Link: https://script.google.com/d/scriptId/edit
ScriptID, ScriptID for production environment の入力を求められる。
未入力のまま進めると新規でスプレッドシートとAppsScriptプロジェクトが作られる。
最後にスプレッドシートとAppsScriptのリンクが表示されるのでどこかに記録しておく。
プロジェクトの設定
タイムゾーンの設定
/gas_sample/appsscript.json
- "timeZone": "America/New_York",
+ "timeZone": "Asia/Tokyo",
ライセンスの設定変更
/gas_sample/license-config.json
{
"ignore": [
…
"build",
+ "src",
+ "test",
"dist"
],
…
}
デプロイ前のプロジェクト自体を公開または配布する場合は上記設定の代わりに下記設定とする。
/gas_sample/license-header.txt
- Copyright 2023 Google LLC
+ Copyright 2023 自分の名前など
デプロイ
# 開発環境にデプロイ
$ npm run deploy
# 本番環境にデプロイ
$ npm run deploy:prod
プロジェクトを作成した時点では開発環境も本番環境も同じ設定になっている。
切り替える場合は、clasp-dev.jsonとclasp-prod.jsonの内容を変更する。
既存のプロジェクトからscriptをとってくる場合
# claspインストール
$ npm install @google/clasp -g
# claspのログイン
$ clasp login
ログイン画面が表示されるので、ログインする
pull元(デプロイ先)を変更
.clasp-dev.json
から.clasp.json
を作成。
scriptIdを既存のGasのIDに変更する。
parentIdは削除。
.clasp.json
{"scriptId":"scriptId","rootDir":"./dist"}
ダウンロード
$ clasp pull
dist ディレクトリにscriptがダウンロードされる。
参考にした記事