CoffeeScriptを使用してGoogle Apps ScriptのJavascriptスクリプトを作成したいと思います。Google Appsスクリプト用のcoffeescriptでグローバルな名前付きjavascript関数を生成する方法
Google Apps Scriptには、スクリプトにトップレベルの名前付き機能が含まれている必要があります。 (私は間違った用語を使用することができるので、私は...私は例で何を意味するか説明します)。たとえば
を、この関数は喜んでGoogle Appsのスクリプトによって認識されています
function triggerableFunction() {
// ...
}
...この機能ではありませんしながら、(それが解析されますが、あなたはそれをトリガーすることができませんではないでしょう):
var nonTriggerableFunction;
nonTriggerableFunction = function() {
// ...
};
私はCoffeeScriptので、私が得ることができるよ最も近いがあることを見つけました上記のnonTriggerableFunction
フォーム。上記のtriggerableFunction
のような名前付き関数を生成する最良の方法は何ですか?
をコンパイルする際に、すでに 'bare'オプション(-b
スイッチ)を使用していますが、トップレベルの機能安全ラッパーはありません。
CoffeeScriptとGoogle App Scriptを組み合わせたWebで見つかった1つのプロジェクトは、Gmail GTD Botです。これは、バックティックの組み合わせを使用して、ユーザーに手作業でいくつかの行を削除するよう求めているようですコード。 (の末尾とREADMEの「インストール」セクションを参照してください)。私はもっとシンプルでクリーンなソリューションを望んでいます。
グローバルな名前付き機能を生成していないようです。 -bスイッチを使用する場合は、それが生成するものである: (関数(){ 戻りthis.triggerableFunction =(関数(){ 関数triggerableFunction(ARG1、ARG2){} 戻りtriggerableFunction; } )(); })(); – mattbh
ブラウザでコードを実行しましたか?この関数は、グローバルコンテキストに関連付けられているため、グローバルです。そして、それは 'triggerableFunction.name ===" triggerableFunction "という名前です。もちろん、それは関数ステートメントを生成しませんが、私はそれが尋ねられたものではないと信じています。 – Adrien
コードはブラウザではなくGoogle Apps Scriptエンジン内で実行されました。 Google Apps Scriptエンジンに必要と思われる関数文を生成する方法を実際に尋ねていました。 'gmail-gtd-bot'(バックティックを使用)で使用されていた回避策が私のために働いていました。 – mattbh