esbuildでGASのコードをビルドする


モジュールバンドラーを見つけると「GAS向けのコードを作れるか」と考えてしまうようになりました。
というわけでesbuildプラグインを作ったので紹介します。

esbuild

爆速と話題ですね。
ちなみにプラグインAPIはexperimentalなので、今後の動向は気にかけていきたいと思います。

The plugin API is new and still experimental. 
It may change in the future before version 1.0.0 of esbuild as new use cases are uncovered. 

「GAS向けのコード」とは

esbuildでビルドしたコードをスクリプトエディタにコピペしても、関数を選択できませんでした。
この記事中にあるように グローバルオブジェクトに関数宣言文で関数を定義する必要があります。

しかも、関数宣言文はgas-entry-generatorで生成できます(すごい)

esbuildプラグイン

作ったプラグインでは

  1. ビルド後のソースに対してgas-entry-generatorを実行して、関数宣言文を生成
  2. ビルド後のソースの先頭に2.を追記

をやってます。
大したことはやってないですね。

まとめ

だいぶ雑な実装ですが、実務のコードでも使っていて今のところ問題はないです
ぜひ使ってみてください!

appsscript.jsonを自動でコピーしてくれる機能とかも追加していこうと思っています!