最近、JavaScriptの開発にGoogleClosureToolsを使い始めました。これまで、CoffeeScriptでコードを記述してきましたが、 CoffeeScriptによって生成されたJavaScriptは、 GoogleClosureCompilerの詳細モードと互換性がないようです。
Google Closureサポートを追加するCoffeeScriptコンパイラの拡張機能はありますか?
最近、JavaScriptの開発にGoogleClosureToolsを使い始めました。これまで、CoffeeScriptでコードを記述してきましたが、 CoffeeScriptによって生成されたJavaScriptは、 GoogleClosureCompilerの詳細モードと互換性がないようです。
Google Closureサポートを追加するCoffeeScriptコンパイラの拡張機能はありますか?
CoffeeScriptをGoogleClosureToolsで使用できるようにすることを目的としたさまざまなツールがあります。それらのうちの3つについて説明します。
特徴:
in
演算子、その他のさまざまな非互換性を修正しました@constructor
の自動生成@extends
goog.provide
宣言されたクラスごとにステートメントを自動的に挿入しますinclude namespace as alias
サポートはに翻訳されgoog.require
、goog.scope
欠点:
My.Long.Named.Car
することはできません)Car
provide
同等のものがありませんinclude
詳細については、http://bolinfest.com/coffee/をご覧ください。
免責事項:私はこのソリューションの作成者です
このソリューションは、Bolinfestの作業に触発され、次のように拡張されています。
goog.scope
@constructor
、@extends
生成されたものに置き換えられますprovide
cast<typeToCastTo>(valueToBeCast)
構文を使用した型キャストのサポートhttps://github.com/hleumas/coffee-script/wikiで詳細を読む
上記の2つのソリューションとは異なり、SteidaのCoffee2Closureは、アップストリームの調整されていないCoffeeScriptによって生成されたjavascriptコードのポストプロセッサーです。このアプローチには1つの大きな利点があります。それは、CoffeeScriptの継続的な開発により、更新が不要またはわずかなだけであり、それでも実際のものであるということです。ただし、このアプローチの性質上、一部の機能は提供できません。現在、クラスとバインディング、ループ、in
演算子、およびその他のいくつかの非互換性のみが修正されています。自動注釈生成、型キャスト、またはカスタムキーワードはサポートされていません。