CoffeeScriptをクライアントのブラウザに送信してJavaScriptにコンパイルする方法はありますかそこに?
<script type="text/coffeescript">
square = (x) -> x * x
list = [1, 2, 3, 4, 5]
squares = (square num for num in list)
</script>
CoffeeScriptコンパイラはJavaScriptで記述されているので、クライアントのブラウザでこのコードをコンパイル/実行するためにクライアントに送信できますか?
ジェレミーはすでにこれを持っていますが、いくつかの重要な詳細と警告を追加しましょう:
coffee-script.js
は大きなファイルです。したがって、実際にユーザーに独自のCoffeeScriptを実行させる場合を除いて、本番環境で使用しないでください。squares
はスクリプトの外部には表示されません。代わりに、window.squares = ...
に変更することをお勧めします。coffee-script.js
が<script type="text/coffeescript>
タグを読み取らないのは、ドキュメントの準備が整うまで、JavaScriptがすでに実行されているためです。XMLHTTPRequest
を介してロードされます。つまり、サイトと同じドメインでホストする必要があります。 (特定のブラウザ(少なくともChrome)でも、file://
パスでXMLHTTPRequest
sを実行する際に問題が発生します。)したがって、代わりにコンパイル済みJavaScriptとしてCoffeeScriptを提供するためのいくつかの代替案を検討することをお勧めします。 RubyまたはPythonサーバー用に開発している場合は、利用可能なプラグインがあります。それらすべてを http: //github.com/jashkenas/coffee-script/wiki/Web-framework-plugins 。
バックエンドなしでサイトを開発している場合、私が強くお勧めするツールは Middleman です。これにより、開発中にCoffeeScript(および必要に応じてHamlとSass)を操作できます。実稼働展開用にコンパイルおよび縮小します。
答えはイエスです。 @Trevorの優れた答えを繰り返すのではなく、あなたが考えていることの例を示します。
http://forgivingworm.wordpress.com/2010/09/27/running-coffeescript-in-browser/
基本的にあなた
以下のサンプルHTML
<html>
<head>
<title>In-Browser test</title>
<script type=”text/javascript” src=”http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js”> </script>
<script type=”text/coffeescript”>
$ -> $(‘#header‘).css ‘background-color‘, ‘green‘
</script>
<script type=”text/javascript” src=”http://github.com/jashkenas/coffee-script/raw/master/extras/coffee-script.js”> </script>
</head>
<body>
<h1 id=”header” style=”color:white”>CoffeeScript is alive!</h1>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>CoffeScript on browser</title>
</head>
<body>
<script type="text/coffeescript">
alert 'It works!'
</script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/coffee-script/1.7.1/coffee-script.min.js"></script>
</body>
</html>
src
を使用する場合は、XMLHTTPRequest
を介してファイルにアクセスできる必要があります。特に、file://
のブラウザでは失敗します。