49

CoffeeScriptコードをオンザフライでコンパイルし、結果のJavaScriptコードを送信するHttpHandlerを作成したいと思います。MS[JScript][1]とIronJSを試しましたが成功しませんでした。[Rhino] [2]は、Javaの依存関係によって配布が難しくなるため、使用したくありません。

CoffeeScriptを.NETからコンパイルするにはどうすればよいですか?

4

18 に答える 18

36

CoffeeScript-dotnet

CoffeeScriptをコンパイルするためのコマンドラインツール。変更時にCoffeeScriptを自動的に再コンパイルするファイルシステムウォッチャーが含まれています。Linux/Mac用のcoffee-scriptノードパッケージとほぼ同等です。

CoffeeSharp

CoffeeScript-dotnetに似たコマンドラインツールと、asp.netサイトから要求されたときにCoffeeScriptをコンパイルするhttpハンドラーが含まれています。

SassAndCoffeeScript

要求に応じてsassおよびcoffeescriptファイルをコンパイルするAsp.netmvcのライブラリ。縮小と組み合わせもサポートします。

IronJSを使用して手動でコンパイルする

IronJSは、CoffeeScriptコンパイラを正常にロードしてCoffeeScriptをコンパイルできる.NETjavascriptインタプリタです。

Node.jsを使用して手動でコンパイルする

ノードバイナリを取得し、binディレクトリをパスに追加します。node.jsスクリプトを記述して、CoffeeScriptコンパイラとCoffeeScriptファイルをロードし、コンパイルされたjavascriptを保存します

于 2010-06-14T10:40:44.767 に答える
32

CoffeeScriptはChirpyによって完全にサポートされるようになりました:http: //chirpy.codeplex.com/

于 2011-03-03T02:59:39.977 に答える
8

ランタイムコンパイラを作成したいと具体的に言ったので、これはあなたが探しているものとは正確に一致しないかもしれませんが、要点がjavascriptの結果を生成する方法を持つことである場合、MindscapeWebWorkbenchは興味深いものです。これは、Visual Studio.NET 2010の無料の拡張機能であり、ExtensionManagerで使用できます。Intellisense、構文の強調表示を提供し、記述時にJSにコンパイルします。私はそれを使い始めたばかりですが、有望に見えます。スコットハンゼルマンはここでそれについて話します。また、LESSとSassもサポートしています。

于 2011-09-05T15:26:17.117 に答える
4

IKVM、jcoffeescript、Rhinoを使用して.NETからCoffeeScriptをコンパイルすることができました。パラメーターなしのJCoffeeScriptCompilerコンストラクターのオーバーロードが機能しなかったことを除いて、それは簡単でした。パラメータとしてjava.util.Collections.EMPTY_LISTを使用して正常に実行されました。

これは私がそれをした方法です:

  1. IKVM、jcoffeescript、Rhinoをダウンロードしてください。
  2. js.jarに対してikvmcを実行し、js.dllを作成します。
  3. jcoffeescriptjarに対してikvmcを実行します。
  4. VisualStudioでjcoffeescriptdllへの参照を追加します。より多くの参照が必要になる場合がありますが、それらについて警告されます。
  5. コードで新しいorg.jcoffeescript.JCoffeeScriptCompiler(java.util.Collections.EMPTY_LIST).compile()を実行します。

次のステップは、ビルドタスクやHTTPハンドラーを作成することです。

于 2010-10-04T15:38:05.477 に答える
4

JurassicJavaScript実装を使用する新しいcoffeescript-dotnetプロジェクトを確認してください。

于 2011-02-03T23:54:14.777 に答える
3

CoffeeScriptコンパイラはInternetExplorerで実行されるようになったため、最近2、3の調整を行った後、JavaScriptの他のMSフレーバーにも入るのがよいでしょう。最新バージョンからインクルードしてみてください。extras/coffee-script.jsそうすれば、うまくいくはずですCoffeeScript.compile(code)

于 2010-06-02T02:29:05.730 に答える
1

VisualStudio2010のCoffeeScript

これはChirpyのフォークです(chirpyは、JavaScript、スタイルシート、ドットレスファイルをマッシュ、ミニファイ、検証するためのツールです)

「OK、主に他の人の作業に基づいて、フォークで動作するようになったと思います。チェックしてください:http: //chirpy.codeplex.com/SourceControl/network/Forks/Domenic/CoffeeScriptFixes

http://chirpy.codeplex.com/workitem/48から

于 2011-02-25T19:06:21.667 に答える
1

私のメインエディターは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です。

于 2012-03-02T20:55:16.130 に答える
1

直接の答えはありませんが(見つけていただければ幸いです)、以下を見て、どのように行われるかを確認してください。

于 2010-06-01T07:33:13.583 に答える
1

バンドルされているextras/coffee-script.jsWindowsベースのスクリプトホスト(または単にwscript)を実行してみましたが、問題は報告されませんでした。次に、次の行を追加しました。

WScript.Echo(CoffeeScript.compile('a: 1'));

ファイルの最後でwscriptもう一度実行すると、結果のJavaScriptが正しく出力されます。

COMオブジェクトを使用していますか?MScriptオブジェクト参照の初期化を担当するコードをもう少し共有できますか?

于 2010-06-13T14:30:08.180 に答える
1

IronJSはCoffeeScriptをサポートするようになり、一般的に他の.NETJSエンジンよりも高速です。

2つを一緒に配線することについてのブログ投稿があります:http:
//otac0n.com/blog/2011/06/29/CoffeeDemo-A-Simple-Demo-Of-IronJS-Using-CoffeeScript.aspx

于 2011-07-04T07:11:14.043 に答える
1

これは古いことは知っていますが、非常によく似た質問に答えるためにここに来ました。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>
于 2013-04-04T10:00:59.737 に答える
1

単純にそのポートをC#に書き込むことができます。JisonをC#(CoffeeScriptを実行するための基盤となるプロジェクト)に移植しました。少し違うかもしれませんが、どちらのJisonパーサーも同じように機能します。

私はまだそれをJisonのメインアーキテクチャにプルバックするように要求していませんが、すぐにそうする予定です。

https://github.com/robertleeplummerjr

于 2013-07-21T00:14:22.847 に答える
0

また、jurassic-coffeeをチェックすることもできます。これは、jurassicで元のコンパイラーを実行するコーヒースクリプトコンパイラーでもあります。

スプロケットスタイルの「#= require file.coffee」または「#= require file.js」が特徴で、.coffeeファイルをモジュール化して、コンパイルの直前に結合したり、.jsファイルを埋め込んだりするために使用できます。

.jsおよび.coffeeファイルのファイルウォッチャーを備えたHttpHandlerを備えており、どの.coffeeファイルを再コンパイルして、残りの*.jsファイルに渡す必要があるかを追跡します。

ジュラシックコーヒーはNugetパッケージとしても利用できます

https://github.com/creamdog/JurassicCoffee

于 2011-07-08T13:59:36.773 に答える
0

CScriptにシェルアウトする代わりに、Node.jsにシェルアウトすることもできます(ここに自己完結型のWindowsバイナリがあります

于 2010-11-19T21:28:31.710 に答える
0

coffee-script.jsextras /ファイルを変更せずに.NET用jscJScript.NETコンパイラにコンパイルしようとしましたが、多くのエラーが発生しました。注目すべきものは次のとおりです。

  • 「require」は新しい予約語であり、識別子として使用しないでください
  • 'ensure'は新しい予約語であり、識別子として使用しないでください
  • タイプ「グローバルオブジェクト」のオブジェクトには、そのようなメンバーはありません

その他のエラーは、上記のエラーが原因で発生しました。

于 2011-01-07T04:24:09.883 に答える
0

舞台裏でWindowsScriptHostを使用するHttpHandlerを実行しました:https ://github.com/duncansmart/LessCoffeeそしてうまく機能します( * .lessファイルもコンパイルします)。

NuGetにあります:http://nuget.org/List/Packages/LessCoffee

これは、この単純なラッパーに基づいています:https ://github.com/duncansmart/coffeescript-windows

于 2011-11-08T23:19:27.873 に答える
0

私はv8を使用して対話型シェルを作成しました。

https://github.com/mattn/coffee-script-v8

これは単一の実行可能ファイルとして機能します。(外部ファイルは使用しないでください)require()は使用できません。しかし、coffeescriptを学ぶには十分です。

于 2011-11-11T07:08:50.330 に答える