CoffeeScriptコードをオンザフライでコンパイルし、結果のJavaScriptコードを送信するHttpHandlerを作成したいと思います。MS[JScript][1]とIronJSを試しましたが成功しませんでした。[Rhino] [2]は、Javaの依存関係によって配布が難しくなるため、使用したくありません。
CoffeeScriptを.NETからコンパイルするにはどうすればよいですか?
CoffeeScriptコードをオンザフライでコンパイルし、結果のJavaScriptコードを送信するHttpHandlerを作成したいと思います。MS[JScript][1]とIronJSを試しましたが成功しませんでした。[Rhino] [2]は、Javaの依存関係によって配布が難しくなるため、使用したくありません。
CoffeeScriptを.NETからコンパイルするにはどうすればよいですか?
CoffeeScriptをコンパイルするためのコマンドラインツール。変更時にCoffeeScriptを自動的に再コンパイルするファイルシステムウォッチャーが含まれています。Linux/Mac用のcoffee-scriptノードパッケージとほぼ同等です。
CoffeeScript-dotnetに似たコマンドラインツールと、asp.netサイトから要求されたときにCoffeeScriptをコンパイルするhttpハンドラーが含まれています。
要求に応じてsassおよびcoffeescriptファイルをコンパイルするAsp.netmvcのライブラリ。縮小と組み合わせもサポートします。
IronJSは、CoffeeScriptコンパイラを正常にロードしてCoffeeScriptをコンパイルできる.NETjavascriptインタプリタです。
Node.jsを使用して手動でコンパイルする
ノードバイナリを取得し、binディレクトリをパスに追加します。node.jsスクリプトを記述して、CoffeeScriptコンパイラとCoffeeScriptファイルをロードし、コンパイルされたjavascriptを保存します。
CoffeeScriptはChirpyによって完全にサポートされるようになりました:http: //chirpy.codeplex.com/
ランタイムコンパイラを作成したいと具体的に言ったので、これはあなたが探しているものとは正確に一致しないかもしれませんが、要点がjavascriptの結果を生成する方法を持つことである場合、MindscapeWebWorkbenchは興味深いものです。これは、Visual Studio.NET 2010の無料の拡張機能であり、ExtensionManagerで使用できます。Intellisense、構文の強調表示を提供し、記述時にJSにコンパイルします。私はそれを使い始めたばかりですが、有望に見えます。スコットハンゼルマンはここでそれについて話します。また、LESSとSassもサポートしています。
IKVM、jcoffeescript、Rhinoを使用して.NETからCoffeeScriptをコンパイルすることができました。パラメーターなしのJCoffeeScriptCompilerコンストラクターのオーバーロードが機能しなかったことを除いて、それは簡単でした。パラメータとしてjava.util.Collections.EMPTY_LISTを使用して正常に実行されました。
これは私がそれをした方法です:
次のステップは、ビルドタスクやHTTPハンドラーを作成することです。
JurassicJavaScript実装を使用する新しいcoffeescript-dotnetプロジェクトを確認してください。
CoffeeScriptコンパイラはInternetExplorerで実行されるようになったため、最近2、3の調整を行った後、JavaScriptの他のMSフレーバーにも入るのがよいでしょう。最新バージョンからインクルードしてみてください。extras/coffee-script.js
そうすれば、うまくいくはずですCoffeeScript.compile(code)
。
VisualStudio2010のCoffeeScript
これはChirpyのフォークです(chirpyは、JavaScript、スタイルシート、ドットレスファイルをマッシュ、ミニファイ、検証するためのツールです)
「OK、主に他の人の作業に基づいて、フォークで動作するようになったと思います。チェックしてください:http: //chirpy.codeplex.com/SourceControl/network/Forks/Domenic/CoffeeScriptFixes」
私のメインエディターはVS2010で、WorkBench拡張機能が大好きです。.coffeeファイルで[保存]をクリックするたびにjsに自動コンパイルされるのは素晴らしいことです。また、私が読んだものの、一度も回避できなかったSASSを紹介します。
your.coffeeと.scssはとにかくソースファイルであるため、これらはjsファイルとcssファイルも自動的に縮小/縮小する有料バージョンを提供します。
特にVS2010を実行している場合は、すべてのVSユーザーに先に進んでこれをインストールすることをお勧めします。
唯一のノック、そして誰かが私を訂正するか、私を啓発してください、それは.coffee構文では、html、js、c#コードのように強調表示されないということです。それは、私がhttp://studiostyl.es/の配色を使用していて、レコードhttp://studiostyl.es/schemes/coffee-がコーヒーという名前を共有しているためである可能性があります。に気づいています。しかし、今日ワークベンチアドインを使い始めない理由はありません!
さて、ワークベンチのウェブサイトは主張しています:構文が強調されているので、おそらくそれは私が選んだstudiostyle.esです。
直接の答えはありませんが(見つけていただければ幸いです)、以下を見て、どのように行われるかを確認してください。
バンドルされているextras/coffee-script.js
Windowsベースのスクリプトホスト(または単にwscript)を実行してみましたが、問題は報告されませんでした。次に、次の行を追加しました。
WScript.Echo(CoffeeScript.compile('a: 1'));
ファイルの最後でwscript
もう一度実行すると、結果のJavaScriptが正しく出力されます。
COMオブジェクトを使用していますか?MScriptオブジェクト参照の初期化を担当するコードをもう少し共有できますか?
IronJSはCoffeeScriptをサポートするようになり、一般的に他の.NETJSエンジンよりも高速です。
2つを一緒に配線することについてのブログ投稿があります:http:
//otac0n.com/blog/2011/06/29/CoffeeDemo-A-Simple-Demo-Of-IronJS-Using-CoffeeScript.aspx
これは古いことは知っていますが、非常によく似た質問に答えるためにここに来ました。VisualStudio 2012 Expressを使用してCoffeeScriptをコンパイルするにはどうすればよいですか?無料のExpressバージョンでは拡張機能が許可されていないため、かなり長い間うまく機能していたMindscapeWorkbench拡張機能を使い続けることができなかったことに注意してください。
とても簡単であることがわかりました。NuGetを使用してJurassic-Coffeeパッケージをインストールするだけで、すぐに使用できます。
このパッケージをmindscapeワークベンチよりも使用する利点の1つは、htmlのスクリプトタグから直接コーヒーを参照できることです。コンパイルされたJSを最小化してキャッシュするため、要求されたコーヒーファイルが変更された場合にのみ作業を行うことができます。
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="home.coffee"></script>
</head>
mindscapeワークベンチを使用すると、さまざまなcoffescriptファイルをバンドルできます。これは、コーヒースクリプトをモジュール化するのに非常に便利です。#= require
次のように、ステートメントを使用して他のコーヒーモジュールファイルを含めることにより、JurassicCoffeeを使用してこれを行うこともできます。
#= require Classes\GridWrapper.coffee
class UsersGrid
constructor:->
@grid = new GridWrapper()
#= require
コーヒーファイルにstaementを含めることは、実際には、mindscapeワークベンチアプローチよりもクリーンで明確だと思います。これは、インターフェイスの背後にこれらすべてを隠しているため、依存関係を簡単に忘れてしまいます。
注 潜在的な落とし穴が1つあります。Nugetインストーラーは、IISExpress統合マネージドパイプラインモードと互換性がない可能性のあるhttphandlerエントリをweb.configに配置します。
したがって、次のエラーが表示される場合があります。
統合管理パイプラインモードに適用されないASP.NET設定が検出されました。
これを修正するには、以下に示すハンドラーを削除するだけです。
<system.web>
//other stuff
<httpHandlers>
<add type="JurassicCoffee.Web.JurassicCoffeeHttpHandler,JurassicCoffee" validate="false" path="*.coffee" verb="*" />
</httpHandlers>
</system.web>
単純にそのポートをC#に書き込むことができます。JisonをC#(CoffeeScriptを実行するための基盤となるプロジェクト)に移植しました。少し違うかもしれませんが、どちらのJisonパーサーも同じように機能します。
私はまだそれをJisonのメインアーキテクチャにプルバックするように要求していませんが、すぐにそうする予定です。
また、jurassic-coffeeをチェックすることもできます。これは、jurassicで元のコンパイラーを実行するコーヒースクリプトコンパイラーでもあります。
スプロケットスタイルの「#= require file.coffee」または「#= require file.js
」が特徴で、.coffeeファイルをモジュール化して、コンパイルの直前に結合したり、.jsファイルを埋め込んだりするために使用できます。
.jsおよび.coffeeファイルのファイルウォッチャーを備えたHttpHandlerを備えており、どの.coffeeファイルを再コンパイルして、残りの*.jsファイルに渡す必要があるかを追跡します。
ジュラシックコーヒーはNugetパッケージとしても利用できます
CScriptにシェルアウトする代わりに、Node.jsにシェルアウトすることもできます(ここに自己完結型のWindowsバイナリがあります)
coffee-script.js
extras /ファイルを変更せずに.NET用jsc
のJScript.NETコンパイラにコンパイルしようとしましたが、多くのエラーが発生しました。注目すべきものは次のとおりです。
その他のエラーは、上記のエラーが原因で発生しました。
舞台裏でWindowsScriptHostを使用するHttpHandlerを実行しました:https ://github.com/duncansmart/LessCoffeeそしてうまく機能します( * .lessファイルもコンパイルします)。
NuGetにあります:http://nuget.org/List/Packages/LessCoffee
これは、この単純なラッパーに基づいています:https ://github.com/duncansmart/coffeescript-windows
私はv8を使用して対話型シェルを作成しました。
https://github.com/mattn/coffee-script-v8
これは単一の実行可能ファイルとして機能します。(外部ファイルは使用しないでください)require()は使用できません。しかし、coffeescriptを学ぶには十分です。