https://github.com/IkumaTadokoro/esbuild-gas-template
社内の業務改善とか自動化でたまにGASが出てくる場面があるそうなんですが(自分はまだ一度も書いていない)、GASのエディタで書くとnpmが使えなかったり、TypeScriptが使えなかったりします。
GASで業務効率化できるのは良いことなんですが
ということで、いつもと同じように書けるようなテンプレートを作ってみました。なぜかリポジトリのREADMEを英語で書いてしまって後々使い方を忘れそうなので、ぼちぼちこの記事に追記しておきます。
とりあえずいつも使っているESLint、Prettier、TypeScriptは全部突っ込みました。
コンパイルとトランスパイルにはesbuildを採用しました。採用理由は「esbuildは速い」と聞いていて前から興味があったからです。結果めちゃめちゃ速いし、ビルド用の設定が1スクリプトだけで済んでいるので、小規模なGASとの相性も良さそうです。
これをmonorepoと呼ぶのかはちょっとよくわかっていないんですが、要は複数のGASプロジェクトを1リポジトリに突っ込みます。
npm run gen -name=<プロジェクト名>
ってやると、app
配下にテンプレートが作成されて、このプロジェクトが1つのGoogleAppsScriptに対応する形になります。
もともとは1リポジトリ1スクリプト構成だったんですが、
ということで、さっき変えました。TurborepoとかNxとか流行っているやつもみてみたんですが、too muchな感じだったので、とりあえずnpm workspaceにしました。ちゃんと使えているかは正直微妙です。
適当なGAS書いてみてとりあえず機能することはわかったのですが、いかんせん本運用にはまだ載せていないので、動かしながらちょいちょい修正していきたいと思います。