Google Apps Scriptを使う上での.clasp.jsonについて調べた

Google Apps Scriptを使用する上で設定しなければいけないのが.clasp.jsonです。自分は.clasp.jsonを正しく設定することを忘れてしまったためにミスをしてしまいました。そこで今回は.clasp.jsonの書き方をまとめておきたいと思います。

.clasp.jsonの設定方法

GitHub上での説明は下記にあります。

https://github.com/google/clasp#project-settings-file-claspjson

.clasp.jsonはプロジェクト設定ファイルとも呼ばれ、clasp cloneclasp createをしたときにカレントディレクトリへ作成されます。 GitHubにあった例を記述しておきます。

{
  "scriptId": "",
  "rootDir": "build/",
  "projectId": "project-id-xxxxxxxxxxxxxxxxxxx",
  "fileExtension": "ts",
  "filePushOrder": ["file1.ts", "file2.ts"]
}

scriptId

Google Scriptプロジェクトを特定するためのIDが記述される場所です。 URLとしてある、https://script.google.com/d/<SCRIPT_ID>/edit<SCRIPT_ID>と同じ値が入ります。

rootDir

どのディレクトリのファイルをプロジェクト上にpushするかを決める項目です。必須項目ではないために指定がない場合は現在のディレクトリをpushします。

rootDirを設定しなかったための失敗

新規で開発をしていたとき、node_modulesと同じディレクトリで開発していました。そして、pushをしてしまった結果は対象のファイルがpushの対象となっており長時間結果が帰ってこない結果となりました。 開発する際ソースコードはsrc配下で開発をし、.clasp.json "rootDir": "src/",とすることをおすすめします。こうすることでプロジェクトにpushされるのはsrc配下だけとなります。

projectId

claspがどのGoogle Cloud PlatformのIDと紐付いているかを特定する項目です。

fileExtension

開発しているソースコードの拡張子を指定します。必須項目ではないため、書かなくても大丈夫なようです。

filePushOrder

ファイルをプッシュする順番を指定します。説明文には、実行順に依存するものがある場合に役立ちますとありますが具体的には思いつきませんでした。すべてがアップロードされてから実行すると思うのですが…。

まとめ

今回はrootDirを正しく設定していないことで問題が発生し、.clasp.jsonを調査することになりました。 しかし、結果として自分が気がついていない機能を発見できてよかったです。 Google Apps Scriptで手軽に開発することが増えてきましたので、今後も調査していきたいと思います。

おしまい。