convertir coffee javascript .net coffeescript

javascript - convertir - ¿Cómo puedo compilar CoffeeScript desde.NET?



js to coff (18)

CoffeeScript ahora es totalmente compatible con Chirpy: http://chirpy.codeplex.com/

Quiero escribir un HttpHandler que compila código CoffeeScript sobre la marcha y envía el código JavaScript resultante. He probado MS [JScript] [1] e IronJS sin éxito. No quiero usar [Rhino] [2] porque la dependencia de Java dificultaría la distribución.

¿Cómo se puede compilar CoffeeScript desde .NET?



Dado que el compilador de CoffeeScript ahora se ejecuta en Internet Explorer, después de algunos ajustes recientes, debería ser bueno ir también dentro de otros sabores de MS de JavaScript. Intente incluir extras/coffee-script.js de la última versión, y debería estar listo para usar CoffeeScript.compile(code) .



Escribí un intérprete intercalado usando v8.

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

Esto funciona como un solo archivo ejecutable. (No use archivos externos) No puede usar require (). Pero lo suficiente para aprender coffeescript.


Específicamente, dijo que quería escribir un compilador en tiempo de ejecución, por lo que puede que no sea exactamente lo que está buscando, pero si el objetivo principal es generar un resultado de JavaScript, el Mindscape Web Workbench es interesante. Es una extensión gratuita para Visual Studio.NET 2010 y está disponible en Extension Manager. Proporciona Intellisense, resaltado de sintaxis y compila a JS mientras escribe. Estoy empezando a usarlo pero parece prometedor. Scott Hanselman habla de eso here . También es compatible con LESS y Sass.



Intenté compilar el archivo extras / coffee-script.js , sin modificar, a jsc , el compilador JScript.NET para .NET, y obtuve muchos errores. Aquí están los más notables:

  • ''requerir'' es una nueva palabra reservada y no debe usarse como un identificador
  • ''asegurar'' es una nueva palabra reservada y no debe usarse como un identificador
  • Los objetos del tipo ''Objeto global'' no tienen dicho miembro

Otros errores fueron causados ​​por los errores mencionados anteriormente.


Intenté ejecutar bundled extras/coffee-script.js través de Windows Based Script Host (o simplemente wscript) y no informó ningún problema. Luego agregué esta línea:

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

al final del archivo y ejecutarlo nuevamente a través de wscript e imprimió el JavaScript resultante correctamente.

¿Estás usando objetos COM? ¿Puede compartir algo más del código responsable de inicializar la referencia de objeto MScript?



Mi editor principal es VS 2010 y me encanta la extensión WorkBench. es bueno que se compile automáticamente en js cada vez que presionas guardar en tu archivo .coffee, también te presenta SASS, sobre el cual había leído pero que nunca llegó a conocer.

Ofrecen una versión paga que automáticamente reducirá / miniatificará sus archivos js y css, ya que your.coffee y .scss son sus archivos fuente de todos modos.

Animaría a todos los usuarios de VS a continuar e instalar esto, especialmente si ejecuta VS 2010.

El único golpe, y alguien por favor corrígeme o ilumíname, es que con la sintaxis .café no está resaltada de la forma en que dice el código html, js, c #. podría ser porque estoy usando un esquema de color de http://studiostyl.es/ y para el registro http://studiostyl.es/schemes/coffee- simplemente comparte el nombre de café sin sintaxis especial resaltar apoyo para coffeescript que soy conciente de. ¡pero no hay razón para no comenzar a usar el complemento de banco de trabajo hoy!

Las afirmaciones del sitio web de Workbench: resaltado de sintaxis así que de nuevo tal vez es el studiostyle.es que elegí.


No tengo una respuesta directa, (espero que encuentre una), pero tal vez eche un vistazo a lo siguiente para ver cómo se podría hacer.


Pude compilar CoffeeScript desde .NET usando IKVM, jcoffeescript y Rhino. Fue sencillo, excepto que la sobrecarga del constructor JCoffeeScriptCompiler sin parámetros no funcionó. Funcionó bien con un java.util.Collections.EMPTY_LIST como parámetro.

Así es como lo hice:

  1. Descargue IKVM, jcoffeescript y Rhino.
  2. Ejecute ikvmc contra js.jar, creando js.dll.
  3. Ejecute ikvmc contra el jcoffeescript jar.
  4. Agregue una referencia a jcoffeescript dll en Visual Studio. Se pueden necesitar más referencias, pero se le advertirá sobre eso.
  5. Ejecute org.jcoffeescript.JCoffeeScriptCompiler nuevo (java.util.Collections.EMPTY_LIST). Pile () en su código.

El siguiente paso sería crear una tarea de compilación y / o un controlador HTTP.


Sé que esto es antiguo, pero vine a responder una pregunta muy similar: ¿cómo puedo compilar CoffeeScript con Visual Studio 2012 Express? Tenga en cuenta que la versión gratuita de Express no permite extensiones, por lo que no pude continuar utilizando la extensión de Mindscape Workbench que me había sido útil durante bastante tiempo.

Resulta ser muy fácil. Simplemente use NuGet para instalar el paquete Jurassic-Coffee y listo.

Una ventaja del uso de este paquete sobre el banco de trabajo de mentalise es que puede hacer referencia a su café directamente desde las etiquetas de script en el html. Minifica y almacena en caché el JS compilado, por lo que solo funciona si el archivo de café solicitado ha cambiado.

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

El banco de trabajo de mentalidad le permite agrupar diferentes archivos de coffescript, lo que es muy útil para modularizar su coffeescript. También puede hacer esto usando Jurassic Coffee utilizando la sentencia #= require para incluir otros archivos de módulo de café, por ejemplo:

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

Creo que tener el #= require staement en el archivo de café es en realidad más limpio y claro que el enfoque del banco de trabajo de mentalidad, que esconde todo esto detrás de su interfaz para que olvide fácilmente las dependencias que tiene.

Nota: hay un posible gotcha. El instalador de Nuget incluirá una entrada de httphandler en su web.config que puede no ser compatible con el modo de canalización administrada integrada de IIS Express.

Por lo tanto, es posible que vea el siguiente error:

Se ha detectado una configuración de ASP.NET que no se aplica en el modo de canalización gestionada integrada.

Para solucionarlo, simplemente elimine el controlador que se muestra a continuación.

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


Simplemente podría escribir un puerto de él en C #. He transferido a Jison a C # (que es el proyecto subyacente que hace funcionar CoffeeScript). Creo que puede ser un poco diferente, pero los dos analizadores de Jison funcionan de la misma manera.

No lo he solicitado todavía para la arquitectura principal de Jison, pero lo haré pronto.

https://github.com/robertleeplummerjr


También puede consultar el jurassic-coffee, también es un compilador de script de café que ejecuta el compilador original en Jurásico.

Cuenta con el estilo de rueda dentada "# = require file.coffee" o "# = require file.js " que se puede usar para mantener los archivos .coffee modulares y combinados justo antes de la compilación, así como para incrustar archivos .js.

Tiene un gestor HttpHandler con vigilantes de archivos .js y .coffee que realiza un seguimiento de los archivos .coffee necesarios para volver a compilar y pasar a los archivos compilados * .js para el resto.

jurassic-coffee también está disponible como paquete Nuget

https://github.com/creamdog/JurassicCoffee



CoffeeScript-dotnet

Herramienta de línea de comandos para compilar CoffeeScript. Incluye un observador del sistema de archivos para recompilar automáticamente CoffeeScripts cuando cambian. Aproximadamente equivalente al paquete de nodo coffee-script para linux / mac.

CoffeeSharp

Incluye una herramienta de línea de comandos similar a CoffeeScript-dotnet, así como un controlador http que compila CoffeeScripts cuando se solicita desde un sitio asp.net.

SassAndCoffeeScript

Biblioteca para Asp.net mvc que compila archivos sass y coffeescript bajo pedido. También es compatible con la minificación y la combinación.

Compilar manualmente con IronJS

IronJS es un intérprete de JavaScript .NET que puede cargar satisfactoriamente el compilador de CoffeeScript y compilar CoffeeScript.

Compilar manualmente con Node.js

Obtenga los binarios de nodo y agregue el directorio bin a su ruta. Escriba un script node.js para cargar el compilador de CoffeeScript y sus archivos CoffeeScript y guarde el javascript compilado .