Frage

Ich will ein Httphandler schreiben, Coffeescript-Code on-the-fly und sendet den resultierenden JavaScript-Code kompiliert. Ich habe versucht, MS [JScript] [1] und IronJS ohne Erfolg. Ich will nicht verwenden [Rhino] [2], da die Java Abhängigkeit wäre es zu schwierig zu verteilen.

Wie kann Coffee von .NET?

kompiliert werden
War es hilfreich?

Lösung

Coffeescript-Dotnet

Kommandozeilen-Tool für die Erstellung von Coffeescript. Enthält ein Filesystemwatcher automatisch recompile CoffeeScripts, wenn sie sich ändern. Entspricht in etwa dem Kaffee-Skript-Knoten-Paket für Linux / Mac.

CoffeeSharp

Enthält ein Kommandozeilen-Tool ähnlich wie Coffeescript-Dotnet sowie ein http-Handler, dass compiles CoffeeScripts wenn sie von einer asp.net Website angefordert werden.

SassAndCoffeeScript

In der Bibliothek für Asp.net Mvc dass compiles Sass und Coffeescript Dateien auf Anfrage. Auch unterstützt minification und Kombination.

manuell Compile Mit IronJS

IronJS ist ein .NET Javascript-Interpreter, dass der Coffeescript-Compiler erfolgreich laden und Coffeescript kompiliert.

manuell Compile Mit Node.js

Holen Sie sich den Knoten-Binärdateien und das Verzeichnis ist zu Ihrem Pfad hinzuzufügen. Schreiben Sie einen node.js Skript den Coffee Compiler und Ihre Coffeescript-Dateien zu laden und speichern der kompilierten Javascript .

Andere Tipps

Coffeescript ist nun vollständig von Chirpy unterstützt: http://chirpy.codeplex.com/

Sie ausdrücklich gesagt, dass Sie einen Laufzeit Compiler schreiben wollen, so dass dies nicht genau das sein, was Sie suchen, aber wenn die Hauptsache ist, einen Weg zu haben JavaScript Ergebnis zu erzeugen, die Web Mindscape Workbench interessant ist. Es ist eine kostenlose Erweiterung für Visual Studio.NET 2010 und in der Extension Manager. Es gibt Intellisense, Syntax-Hervorhebung und kompiliert zu JS, wie Sie schreiben. Ich bin gerade begann es zu benutzen immer aber sieht vielversprechend aus. Scott Hanselman spricht darüber hier . Es unterstützt auch LESS und Sass.

Ich habe es geschafft, Coffeescript von .NET IKVM, jcoffeescript und Rhino zu kompilieren. Es war einfach, mit der Ausnahme, dass die JCoffeeScriptCompiler Konstruktor Überlastung ohne Parameter hat nicht funktioniert. Es lief OK mit einem java.util.Collections.EMPTY_LIST als Parameter.

Dies ist, wie ich es getan hätte:

  1. Download IKVM, jcoffeescript und Rhino.
  2. Ausführen ikvmc gegen js.jar, die Schaffung js.dll.
  3. Ausführen ikvmc gegen die jcoffeescript Glas.
  4. einen Verweis auf die jcoffeescript DLL in Visual Studio hinzufügen. Weitere Referenzen benötigt werden, aber Sie werden mit denen, gewarnt werden.
  5. Ausführen neuer org.jcoffeescript.JCoffeeScriptCompiler (java.util.Collections.EMPTY_LIST) .compile () im Code.

Der nächste Schritt wäre eine Build-Aufgabe zu erstellen und / oder ein HTTP-Handler.

Schauen Sie sich das neue Coffeescript-Dotnet Projekt, das die Jurassic JavaScript-Implementierung

.

Da das Compiler Coffeescript läuft jetzt auf Internet Explorer, nach ein paar letzten zwickt, sollte es gut sein, wie auch in anderen MS-Aromen von JavaScript zu gehen. Versuchen einschließlich extras/coffee-script.js von der letzten Version, und Sie sollten gut sein mit CoffeeScript.compile(code) zu gehen.

Ich habe versucht, das gebündelte extras/coffee-script.js über die Windows-basierte Script Host (oder nur wscript) laufen und es hat berichten keine Probleme. Ich habe dann hinzugefügt, um diese Zeile:

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

am Ende der Datei und führen Sie es durch wscript wieder und es korrekt gedruckt das resultierende JavaScript.

Sind Sie mit COM-Objekte? Können Sie das MScript Objektreferenz für die Initialisierung verantwortlich einige weitere der Code teilen?

Coffee in Visual Studio 2010

Es ist Chirpy der Gabel (chirpy ist ein Werkzeug für Maischen, minifing und Validierung von Javascript, Sheet und dotless Dateien)

"OK, ich glaube, ich habe es auf meine Gabel arbeiten, basieren meist auf anderer Leute Arbeit Check it out.: http://chirpy.codeplex.com/SourceControl/network/Forks/Domenic/CoffeeScriptFixes "

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

Ich habe keine direkte Antwort haben, (ich hoffe, dass Sie einen finden), aber vielleicht einen Blick auf die folgenden zu sehen, wie es getan werden könnte.

IronJS unterstützt jetzt Coffee und ist in der Regel schneller als die anderen .NET JS Motoren:

Ich habe eine Blog-Post über die zwei Verdrahtung zusammen hier:
http: // otac0n .com / blog / 2011/06/29 / CoffeeDemo-A-Simple-Demo-Of-IronJS-Using-CoffeeScript.aspx

Mein Haupt Editor ist VS 2010 und ich liebe den Arbeitsplattenzusatz. Es ist schön, es automatisch kompiliert zu js jedes Mal wenn Sie speichern auf Ihrer .coffee Datei treffen, führt Sie auch zu SASS, die ich gelesen hatte, aber nie dazu gekommen.

Sie bieten eine Pay-Version auf das wird autmaically schrumpfen / minify Ihre js und CSS-Dateien als auch, da your.coffee und .scss Quelldateien ohnehin sind.

Ich würde alle VS Anwender dazu veranlassen, gehen Sie vor und installieren Sie dies vor allem, wenn Sie laufen VS 2010.

Die einzige klopfen, und jemand bitte korrigieren Sie mich, oder erleuchte mich, ist, dass mit .coffee Syntax, es ist nicht die Art und Weise sagen html hervorgehoben, js, c # -Code ist. es könnte sein, weil ich ein Farbschema bin mit von http://studiostyl.es/ und für den Datensatz http://studiostyl.es/schemes/coffee- nur teilt den Namen Kaffee keine besondere Syntax Highlight Unterstützung für Coffeescript, dass Ich bin mir bewusst, dass. aber kein Grund, nicht zu starten, die Werkbank Addin heute!

Okay, Werkbank Webseite Ansprüche. Syntax-Hervorhebung so wieder ist es vielleicht die studiostyle.es wähle ich

Ich weiß, das ist alt, aber ich kam hier eine sehr ähnliche Frage zu beantworten: Wie erhalte ich meine Coffee mit Visual Studio 2012 Express zu kompilieren? Beachten Sie, dass die kostenlose Express-Version keine Erweiterungen zulässt, damit ich nicht die Mindscape Workbench Erweiterung, die mich gut für ziemlich lange Zeit gedient hatte.

Es stellt sich heraus sehr einfach zu sein. verwenden NuGet einfach zu installieren, die Jura-Kaffee Paket und los geht.

Ein Vorteil dieses Paket über mindscape Werkbank ist, dass Sie Ihren Kaffee direkt in dem HTML-Code aus dem Script-Tags verweisen können. Es minifies und speichert die kompilierte JS, so dass Sie nur die Arbeit tun, wenn die angeforderte Kaffee-Datei geändert hat.

<head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script src="home.coffee"></script>
</head>

Die mindscape Workbench Sie zusammen verschiedene Dateien Coffeescript bündeln können, die zur Modularisierung Ihre Coffee sehr praktisch ist. Sie können auch diesen mit Jurassic Kaffee tun, indem Sie die #= require Anweisung unter Verwendung anderer Kaffee-Modul zum Einbinden von Dateien, zum Beispiel:

#= require Classes\GridWrapper.coffee
class UsersGrid
  constructor:->
     @grid = new GridWrapper()

Ich denke, in der Kaffee-Datei, um den #= require staement ist eigentlich saubere und klarer als der mindscape Werkbank Ansatz, die Art von Häuten alles hinter ihrer Schnittstelle, so dass Sie leicht vergessen, welche Abhängigkeiten Sie haben.

Hinweis Es gibt ein Potential Gotcha. Der Nuget Installer wird in einem Httphandler Eintrag in web.config setzen, die nicht kompatibel ist mit IIS Express integrierten Pipelinemodus gesteuert.

Sie könnten daher die folgende Fehlermeldung angezeigt:

Ein ASP.NET-Einstellung erkannt wurde, das nicht in Integrated gilt Managed Pipeline-Modus.

Um dies zu beheben nur den Handler entfernt angezeigt wird.

<system.web>
  //other stuff

  <httpHandlers>
    <add type="JurassicCoffee.Web.JurassicCoffeeHttpHandler,JurassicCoffee" validate="false" path="*.coffee" verb="*" />
  </httpHandlers>

</system.web>

Sie könnten einfach einen Hafen, es zu C # schreiben. Ich habe Jison zu C # portiert (was die zugrunde liegende Projekt, das Coffeelauf macht). Ich würde denken, es kann ein bisschen anders sein, aber beide Jison Parser arbeiten gleich.

Ich habe nicht ziehen sie angefordert zurück noch Jison Haupt Architektur, wird aber so bald tun.

https://github.com/robertleeplummerjr

Statt Beschuss aus auf CScript können Sie auf Node.js berappen ( hier sind in sich geschlossene Fenster Binärdateien )

Ich habe versucht, die Extras / coffee-script.js Datei, nicht modifizierten, zu jsc zu kompilieren, die JScript. NET Compiler für .NET, und ich habe viele Fehler. Hier sind die bemerkenswert diejenigen:

  • ‚erforderlich‘ ist ein neues reserviertes Wort und nicht als Bezeichner
  • verwendet werden soll
  • ‚sicherstellen‘ ist ein neues reserviertes Wort und nicht als Bezeichner
  • verwendet werden soll
  • Objekte des Typs ‚Globale Objekt‘ haben kein solches Mitglied

Weitere Fehler wurden durch die oben verursacht den Fehler.

Sie möchten vielleicht auch jura-Kaffee überprüfen, es ist auch ein Kaffee-Script Compiler den ursprünglichen Compiler in jura ausgeführt wird.

Es verfügt über Ritzel Stil „# = erfordern file.coffee“ oder „# = erfordern file.js“ Weicht verwendet werden kann, halten .coffee Dateien modular aufgebaut und kombiniert rechts vor der Kompilierung sowie Einbettung Js-Dateien.

Es Sport ein Httphandler mit Datei-Beobachter für Js und .coffee Dateien, die verfolgen, was hält .coffee Dateien muss neu kompiliert und durch den kompilierten * .js-Dateien für den Rest sein.

jura-Kaffee ist auch als Nuget Paket

https://github.com/creamdog/JurassicCoffee

Ich habe getan, ein Httphandler, dass Anwendungen Windows Script Host hinter den Kulissen: https://github.com/duncansmart / LessCoffee und funktioniert super (es auch compiliert * .Weniger Dateien).

Es ist auf NuGet: http://nuget.org/List/Packages/LessCoffee

Es basiert auf diesem einfachen Wrapper: https://github.com/duncansmart/coffeescript-windows

Ich schrieb einen inteructive Shell v8 verwendet wird.

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

Diese Arbeit als einzelne ausführbare Datei. (Verwenden Sie externe Dateien nicht) Es kann nicht verwendet werden (). Aber genug Coffeescript zu lernen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top