claspとは
これまでGoogle Spread Sheetに紐付いたGoogle Apps Scriptの更新はオンラインエディタ以外の方法で更新することができなかった。
はそれを解決するツールだ。2018年1月だから比較的最近だ(執筆時2018年4月)
Google Apps Script をローカル環境で快適に開発するためのテンプレートを作りました
なんていう記事も出ている。
Google Apps Scriptの制約
まあ上げだせばきりがないが、最大の制約は、呼び出し可能な関数が
function foo(){}
のようにfunction
キーワードを用いてglobalスコープで定義された関数しか呼び出せない。
当然Google Spread Sheetに紐付いたGoogle Apps Scriptでも同じで、そうでないとGoogle Spread Sheetから呼び出せない。
上の記事のテンプレートではgas-webpack-pluginを用いてこれを回避している。
gas-webpack-plugin
は
function foo(){}
のように、function
キーワードを用いて空っぽの関数を定義し、あとでglobal
変数経由で実装を挿入するということをやってくれる。
さあ、clasp push
すればGoogle Spread Sheetからこの関数を呼び出せるはずだ。
Google Spread Sheetから呼び出せない
ところがそうは問屋がおろさない。
どうも関数名をGoogle Spread Sheet側でキャッシュしているらしく、clasp push
してもこのキャッシュが更新されない。反映するにはオンラインエディタを開いてどうでもいい編集をして一度保存する必要がある。
雑にUMLのシーケンス図を書くとこんな感じ?(想像です)
Issue投げた
いや、Issueのタイトルからもう英語崩壊しとるから。もうちょっと英語力をですね・・・