Google Apps Script にまぶした Sugar.js は苦い

甘いJavaScriptプログラミングを求めて GAS に Sugar.js の導入を目論んだわけです。

サーバサイドでは、案外難なく使えるものです。
スクリプトファイルプロジェクト Sugar を作成し、スクリプトファイルSugar.gsを追加、そこにSugar.js をコピペして版を作成すればライブラリが完成。
あとはプログラム側で Sugarのプロジェクトキーをライブラリに登録するだけで動いてしまう。アマイ!

ところがクライアントサイドではそうもいかなかった。
さっきのSugar プロジェクトに、いつものようにHTMLファイルとして Sugar.js.html を作成して、scriptタグの間にSugar.js をコピペ、コード.gs に読み込み用のコードを追加します。

function include(output) {
    output.append(
        HtmlService.createHtmlOutputFromFile('sugar.js').getContent());
}

しかし、テストプログラムを実行すると無常のTypeErrorで動かない。
いわく、

TypeError: Cannot define property: SugarMethods, object is not extensible.

これはつまり、cajaではねられてしまうのですね。うーん、苦い。

Underscore.js ならばすんなり使えます。

G Suite Developers Blog: Using open-source libraries in Apps Script